因为那里是int类型没有具体的异常处理程序,所有处理程序捕获这个异常捕获。这个例子产生以下结果:
我们发现一个待定的类型的异常
收集所有处理程序应该放在最后的catch块链。这是为了确保通过异常处理程序,针对特定的数据类型,如果这些处理程序存在夹可以例外。VisualStudio执行此约束-我不知道其他的编译器做。
通常,收集所有处理程序块是空的:
1
catch(...) {} // ignore any unanticipated exceptions
这会抓住任何意外的例外和防止他们退栈在程序上,但并没有具体的错误处理。
使用捕获所有处理程序包main()
一个有趣的用于捕获所有处理程序包main()内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main()
{
try
{
RunGame();
}
catch(...)
{
cerr << "Abnormal termination" << endl;
}
SaveState(); // Save user's game
return 1;