C++ 使用noexcept时,如何确保我的代码不会引发异常?

C++ 使用noexcept时,如何确保我的代码不会引发异常?,c++,exception,C++,Exception,我理解编写异常安全的代码基本上意味着考虑代码的哪一部分可以抛出异常,这样您就可以对确实抛出异常时的行为提供一些保证。特别是,如果情况允许,我认为最好的方法是编写没有任何保证的代码 问题是,我怎么知道我的代码不能抛出 更准确地说: 假设我使用的所有函数都不能抛出noexcepttrue说明符,我用静态_断言检查它,并实现以确保它。 知道了这一点,仍然可以抛出一些东西,比如对基本类型或函数调用的操作抛出的不是函数本身,而是函数调用吗? 是否可以在不导致异常的情况下发生错误?例如,我听说将int除以零

我理解编写异常安全的代码基本上意味着考虑代码的哪一部分可以抛出异常,这样您就可以对确实抛出异常时的行为提供一些保证。特别是,如果情况允许,我认为最好的方法是编写没有任何保证的代码

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

更准确地说:

假设我使用的所有函数都不能抛出noexcepttrue说明符,我用静态_断言检查它,并实现以确保它。 知道了这一点,仍然可以抛出一些东西,比如对基本类型或函数调用的操作抛出的不是函数本身,而是函数调用吗? 是否可以在不导致异常的情况下发生错误?例如,我听说将int除以零会导致错误,但不会引发错误
除以0、缓冲区溢出、操作系统安全性、数值溢出等。我怎么知道我的代码不会抛出任何异常你不能-你能做的最好的事情就是决定如果它确实抛出异常该怎么办。基本上,标准中说它将抛出异常的任何内容,加上使用任何关键字throw:@Drax:当然,再加上UB的任何出现。@deplication或好运依赖于此:@Drax:当然,我依赖它被允许抛出异常,我只是不指望它会这么做-