C++异常重抛出

如果我们编写了一个函数,函数内部可能会出现异常,但是我们不想在这个函数内处理,而是想要通知调用者,那么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++异常重抛出

 

原文链接: https://www.cnblogs.com/bwjblogs/p/12826726.html

欢迎关注

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

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    C++异常重抛出

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

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

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

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

(0)
上一篇 2023年3月2日 上午3:52
下一篇 2023年3月2日 上午3:53

相关推荐