C++ 异常重新抛出省略号

标签 c++ exception try-catch throw

让:

void foo( void )
{
    throw std::exception( "" );
}

void bar( void )
{
    try
    {
        foo():
    }
    catch( ... )
    {
        throw;
    }
}

void baz( void )
{
    try
    {
        bar();
    }
    catch( ... )
    {
    }
}

baz() 捕获了什么? std::Exception 还是其他什么?

感谢您的帮助!

最佳答案

它捕获由 foo 引发的相同 std::Exception。 (至少,如果一开始就可以抛出 std::exception 的话,那么它会的。) 没有操作数的 throw; 会重新抛出当前的异常对象正在处理中。

关于C++ 异常重新抛出省略号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20122841/

相关文章:

c++ - 无法让 POCO HTTPSClientSession 发送请求 - 证书验证失败

c++ - "Stack overflow"错误。可能指针不在列表中

c++ - 使用 std::ends() 和 freeze(false)

java - 处理 Lambda 表达式中的异常

java - SAXParseException 本地化

Javascript:如何捕获导航到使用 window.location.href = url 的页面上的错误

c++ - 指针和引用 + 重载运算符

swift - “ fatal error :在展开可选值时意外发现nil”是什么意思?

java - finally 和 write after catch 的区别

c# - Resharper 和 C# Catch 子句