让:
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/