首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有人能向我解释C++异常规范吗?

有人能向我解释C++异常规范吗?
EN

Stack Overflow用户
提问于 2010-05-03 22:38:03
回答 5查看 4.6K关注 0票数 12

有人能解释C++中使用的异常规范吗?

什么时候使用异常specifications? (我很少在代码中使用)

  • 有哪些优缺点(优缺点)?
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-05-03 22:42:27

什么时候使用(我很少在代码中使用)

希望永远不要因为明年的标准化而在下一个版本的C++中被废弃。

使用异常规范的利弊(利弊)是什么?

它们为您的代码读者提供了一种方法,使其能够确切地了解允许函数抛出哪些异常。问题是,如果抛出意外异常(不在规范中),则程序将被终止(默认情况下)。

票数 15
EN

Stack Overflow用户

发布于 2010-05-03 22:42:13

他们通常被认为是个坏主意。

他们说什么方法会扔。缺点是,如果该方法抛出其他任何东西,那么应用程序就会终止。因此,这是一种保证,但与Java的方式不同。它增加了检查的开销。

票数 13
EN

Stack Overflow用户

发布于 2010-05-03 23:06:59

重要的是要知道:异常规范在C++的下一个版本中是不推荐的,除了不抛出说明符(throw()),它基本上是正式地说“不要使用它们”。

throw()放在函数后面意味着该函数不会抛出任何异常。如果是这样的话,应用程序将被终止(可能-调用了意外的处理程序),所以应用程序的其他部分可以使用该函数,因为它不会抛出异常。这可以方便地编写异常安全的代码。

示例:

代码语言:javascript
复制
void MyFunction() throw() // does not throw any exceptions
{
    /* ... */
{
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2761679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档