您的位置:首页 > 编程语言 > C语言/C++

c++中try catch的用法

2016-07-02 10:52 761 查看
在c++中,可以直接抛出异常之后自己进行捕捉处理,如:(这样就可以在任何自己得到不想要的结果的时候进行中断,比如在进行数据库事务操作的时候,如果某一个语句返回SQL_ERROR则直接抛出异常,在catch块中进行事务回滚)

[html] view
plain copy

#include <iostream>  

#include <exception>  

using namespace std;  

int main () {  

    try  

    {  

        throw 1;  

        throw "error";  

    }  

    catch(char *str)  

    {  

        cout << str << endl;  

    }  

    catch(int i)  

    {  

        cout << i << endl;  

    }  

}  

也可以自己定义异常类来进行处理:

[html] view
plain copy

#include <iostream>  

#include <exception>  

using namespace std;  

  

//可以自己定义Exception  

class myexception: public exception  

{  

    virtual const char* what() const throw()  

    {  

        return "My exception happened";  

    }  

}myex;  

  

int main () {  

    try  

    {      

        if(true)    //如果,则抛出异常;  

            throw myex;  

    }  

    catch (exception& e)  

    {  

        cout << e.what() << endl;  

    }  

    return 0;  

}  

 同时也可以使用标准异常类进行处理:

[html] view
plain copy

#include <iostream>  

#include <exception>  

using namespace std;  

  

int main () {  

    try  

    {  

        int* myarray= new int[100000];  

    }  

    catch (exception& e)  

    {  

        cout << "Standard exception: " << e.what() << endl;  

    }  

    return 0;  

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: