码迷,mamicode.com
首页 > 编程语言 > 详细

C++异常重抛出

时间:2020-05-05 11:06:03      阅读:62      评论:0      收藏:0      [点我收藏+]

标签:style   width   mes   exec   stream   一个   出现   main   cat   

如果我们编写了一个函数,函数内部可能会出现异常,但是我们不想在这个函数内处理,而是想要通知调用者,那么C++允许它重抛出这个异常。语法如下:

try {
    //Execute some code        
} catch (Exception& e) {
    //Peform some operations before exits
    throw;
}

语句throw重新抛出了异常。

看一个实际的例子:

#include <iostream>
#include <stdexcept>

using namespace std;

int f(){
    try{
        throw runtime_error("Exception in f");
    } catch(exception& e){
        cout << "Exception caught in f" << endl;
        cout << e.what() << endl;
        throw;
    }
}
int main()
{
    try{
        f();
    } catch(exception& e){
        cout << "Exception caught in main" << endl;
        cout << e.what() << endl;
    }
    return 0;
}

运行结果:

技术图片

 

C++异常重抛出

标签:style   width   mes   exec   stream   一个   出现   main   cat   

原文地址:https://www.cnblogs.com/bwjblogs/p/12826726.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!