使用noexcept时,如何确定我的代码不会抛出异常?

时间:2014-06-26 15:19:03

标签: c++ exception

我理解编写异常安全代码基本上意味着考虑代码的哪个部分可以抛出异常,以便在确实抛出异常时提供一些行为保证。特别是,我认为如果情况允许,最好是编写带有nothrow保证的代码。

问题是,我怎么知道我的代码不能抛出?

更确切地说:

  • 让我们说我使用的所有函数都不能抛出(它们有noexcept(true)说明符,我用static_assert检查,并且实现它以确保它。)
  • 知道,仍然会抛出某些东西,比如对基本类型或函数调用的操作抛出(不是函数本身,而是函数调用)?
  • 可以在不导致异常的情况下发生错误(例如,我听说将int除以零会导致错误,但不会抛出)

0 个答案:

没有答案