有人能解释C++中使用的异常规范吗?
什么时候使用异常specifications? (我很少在代码中使用)
发布于 2010-05-03 22:42:27
什么时候使用(我很少在代码中使用)
希望永远不要因为明年的标准化而在下一个版本的C++中被废弃。
使用异常规范的利弊(利弊)是什么?
它们为您的代码读者提供了一种方法,使其能够确切地了解允许函数抛出哪些异常。问题是,如果抛出意外异常(不在规范中),则程序将被终止(默认情况下)。
发布于 2010-05-03 22:42:13
他们通常被认为是个坏主意。
他们说什么方法会扔。缺点是,如果该方法抛出其他任何东西,那么应用程序就会终止。因此,这是一种保证,但与Java的方式不同。它增加了检查的开销。
发布于 2010-05-03 23:06:59
重要的是要知道:异常规范在C++的下一个版本中是不推荐的,除了不抛出说明符(throw()),它基本上是正式地说“不要使用它们”。
将throw()放在函数后面意味着该函数不会抛出任何异常。如果是这样的话,应用程序将被终止(可能-调用了意外的处理程序),所以应用程序的其他部分可以使用该函数,因为它不会抛出异常。这可以方便地编写异常安全的代码。
示例:
void MyFunction() throw() // does not throw any exceptions
{
/* ... */
{https://stackoverflow.com/questions/2761679
复制相似问题