异常处理(try/catch)

#include<stdio.h>
int 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
程序结束

处理被除数为零的异常

#include<iostream>
using namespace std;
int main()
{
    int a,b;
    cin>>a>>b;
    try{
        if(a==0)
        throw 0;//
        else
        {
      cout
<<b/a<<endl;
     thorw 1;
     }
       }
catch(int i) {
     if(i==0) cout
<<("产生被除数为0的异常"); } return 0; }

其他异常处理

#include<stdio.h>
void 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*异常

 

posted on 2018-02-21 16:08  laplus  阅读(361)  评论(0编辑  收藏  举报

导航