new*_*mer 2 c++ exception try-catch
int main ()
{
try
{
try
{
throw 5;
}
catch (int n)
{
throw;
}
}
catch (...)
{
cout << "Exception occurred";
}
}
Run Code Online (Sandbox Code Playgroud)
这打印出"异常发生"但是
int main ()
{
try
{
try
{
throw;
}
catch (...)
{
throw;
}
}
catch (...)
{
cout << "Exception occurred";
}
}
Run Code Online (Sandbox Code Playgroud)
这只是错误.看起来我正在尝试捕捉完全一样!唯一的区别是,在第一种情况下我抛出一个int,然后是一般异常,但在第二种情况下,我两次抛出一般异常.程序是否混淆了去哪个捕获?
没有"一般例外"之类的东西,你就不会抛出这样的东西.
在第一个示例中,您抛出一个int,然后重新抛出您正在处理的异常.这就是throw没有争论的意思.
在第二个示例中,您将尝试重新抛出正在处理的异常.由于您当时没有处理异常,因此会出现错误.
| 归档时间: |
|
| 查看次数: |
2372 次 |
| 最近记录: |