首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >异常规范作为函数声明处的注释

异常规范作为函数声明处的注释
EN

Stack Overflow用户
提问于 2015-05-10 16:10:02
回答 1查看 97关注 0票数 2

我在代码中使用C++异常而不是返回值来指示错误,因此我的代码必须是异常安全的。因此,我在函数声明中添加了一个异常规范作为注释。例如:

代码语言:javascript
复制
// Does x and y. strong-guarantee
void XandY();

// Checks something.
bool CheckSomething() noexcept;

这是一个很好的实践吗?

此外,如果我为了制定这些规范而评估我的代码,我是必须记住C++异常,还是还要记住像取消引用nullptr、溢出或除以零异常这样的异常?

比方说,我使用了一个第三方库,它从不抛出C++异常,但可能抛出SEH异常。我的函数依赖于该库的函数,可以永远不例外吗?

代码语言:javascript
复制
void MyFunction() noexcept // <-- Is noexcept viable?
{
    OtherFunction(); // may throw SEH exception
}
EN

回答 1

Stack Overflow用户

发布于 2015-05-10 18:08:32

C++异常规范只适用于C++异常,而不适用于Windows异常。特别是,使用C++的try-catch块不能捕获Windows异常,大多数抛出Windows异常的条件都被标准分类为未定义的或实现定义的行为。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30149149

复制
相关文章

相似问题

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