#includeint main(){ try{ printf("打印块1代码执行\n"); throw 10;//产生一个异常 } catch(int& i){ printf("处理try块1的int类型异常对象,值为%d\n",i); } try{ printf("打印块2代码执行\n"); throw 23.8;//产生一个异常 } catch(int& i){ printf("处理try块2的int类型异常对象,值为%d\n",i); } catch(double d){ printf("处理try块2的double类型异常对象,值为%f\n",d); } printf("程序结束\n"); return 0;}
打印结果:
打印块1代码执行处理try块1的int类型异常对象,值为10打印块2代码执行处理try块2的double类型异常对象,值为23.800000程序结束
处理被除数为零的异常
#includeusing namespace std;int main(){ int a,b; cin>>a>>b; try{ if(a==0) throw 0;// else { cout<
其他异常处理
#includevoid f(){ try{ throw "abc"; } catch(const char*){ printf("执行f出现const char*异常\n"); throw;//继续抛出得到的异常 } printf("f函数打印\n"); //该语句不会打印 }int main(){ try{ f(); } catch(const char*){ printf("执行main出现const char*异常\n"); } return 0;}
打印结果:
执行f出现const char*异常执行main出现const char*异常