因为没有特异性的异常处理程序的类型,全面catches本异常处理程序。本例子包含以下结果:
我们在重要的例外在undetermined型
在全面处理负荷应放置在catch块链。这是一个异常处理程序可以确保重要的例外处理程序根据数据类型的处理程序,如果这些性存在。在Visual Studio enforces约束在其他编译器unsure if I do。
通常,在全面处理程序块是空的:左
1
catch(…){ } /忽略任何非预期的例外
这将吸引任何非预期的例外和防止他们从堆栈的顶部是你的计划,但并没有特异性的错误处理。
使用一套全面处理程序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;
}
在这种情况下,如果rungame()或任何它调用的函数抛出一个未捕获的异常,异常将解除了栈和最终被捕捉到的所有处理程序。这将防止main()终止,并给我们一个机会去打印我们的选择错误,然后保存用户的状态在退出之前。这可以捕捉和处理未预料到的问题,可能是有用的。
异常说明符
本款应视为可选阅读因为异常说明符是在实践中很少使用,不能很好的支持的编译器,和Bjarne Stroustrup(C + +的创造者)认为他们是一个失败的试验。
异常说明符是一种机制,允许我们使用一个函数声明中指定一个函数是否可能会或不会抛出异常。这可以决定一个函数调用的需要放在try块或不可。
有三种类型的异常说明符,所有这些都使用的是抛出(……)语法。