【C/C++开发】try-cache-finnally捕获异常

在c++中,可以直接抛出异常之后自己进行捕捉处理,如:(这样就可以在任何自己得到不想要的结果的时候进行中断,比如在进行数据库事务操作的时候,如果某一个语句返回SQL_ERROR则直接抛出异常,在catch块中进行事务回滚)
[html] view plaincopy
1. #include<iostream>
2. #include<exception>
3. using namespace std;
4. int main () {
5. try
6. {
7. throw 1;
8. throw "error";
9. }
10. catch(char *str)
11. {
12. cout<<str<<endl;
13. }
14. catch(int i)
15. {
16. cout<<i<<endl;
17. }
18. }


也可以自己定义异常类来进行处理:
[html] view plaincopy
1. #include<iostream>
2. #include<exception>
3. using namespace std;
4.
5. //可以自己定义Exception
6. class myexception: public exception
7. {
8. virtual const char* what() const throw()
9. {
10. return "My exception happened";
11. }
12. }myex;
13.
14. int main () {
15. try
16. {
17. if(true) //如果,则抛出异常;
18. throw myex;
19. }
20. catch (exception& e)
21. {
22. cout<<e.what()<<endl;
23. }
24. return 0;
25. }


同时也可以使用标准异常类进行处理:
[html] view plaincopy
1. #include<iostream>
2. #include<exception>
3. using namespace std;
4.
5. int main () {
6. try
7. {
8. int*myarray=newint[100000];
9. }
10. catch (exception& e)
11. {
12. cout<<"Standard exception: "<<e.what()<<endl;
13. }
14. return 0;
15. }
原文链接: https://www.cnblogs.com/huty/p/8517763.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/242842

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月13日 下午10:40
下一篇 2023年2月13日 下午10:41

相关推荐