首页 > 解决方案 > 在 C++ 中,try 块中的语句是否在 throw 语句之后执行(如果引发异常)?

问题描述

请告诉我在 throw 语句执行后是否有任何内容。

例如,在下面的代码中,如果我的 IDE 不打算执行,为什么会引发 '10//0' 的错误?

void check_exception()

{

    char a = 'A';
    char b = 'B';
    try
    {
        if (a == 'A')
            throw "Hello";
        
        cout << "\nLet's check if this line is printed or not";
        cout << "\nB is : " << b << " A has been thrown : " << 10/0;
        
    }
    catch (const char* check)
    {
        cout << "\n\nReceived exception " << check;
    }
}

标签: c++exceptiontry-catchthrow

解决方案


之后的代码throw如果被调用则永远不应该被执行,唯一的例外是如果有一个适当的catch,那么它将被执行。C# 也是如此。无论如何,您不应该throw直接在街区内。try/catch


推荐阅读