Bil*_*eal 15
它们何时使用(我很少看到它在代码中使用)
希望永远不会因为明年标准化而在下一版C++中被弃用.
使用异常规范有哪些优缺点(优点/缺点)?
它们为代码的读者提供了一种方法,可以准确地知道函数允许抛出的异常.问题是,如果抛出了意外的异常(不在规范中),那么程序将被终止(默认情况下).
pm1*_*100 13
他们通常被认为是一个坏主意.
他们说一个方法会抛出什么.缺点是,如果该方法抛出其他任何东西,那么您的应用程序将终止.所以它是一种保证,但与Java不同.它增加了检查的开销.
重要的是要知道:在C++的下一个版本中不推荐使用异常规范,除了no-throw说明符(throw()),它基本上正式说"不要使用它们".
放在throw()函数后意味着该函数不会抛出任何异常.如果它仍然存在,应用程序将被终止(可能 - 调用意外的处理程序),因此应用程序的其余部分可以使用该函数,因为它知道它不会抛出异常.这对于编写异常安全的代码非常方便.
例:
void MyFunction() throw() // does not throw any exceptions
{
/* ... */
{
Run Code Online (Sandbox Code Playgroud)