The*_*ect 5 c++ exception-handling
我创建了一个引发异常的函数,但是在某些情况下,我希望它简单地忽略此异常。
我是这样写代码的,但是不太优雅:
try {
myFunction();
} catch (...) {}
Run Code Online (Sandbox Code Playgroud)
C ++是否有另一种编写方法?
不,没有。
您可以遵循标准在这种情况下所做的操作,即将函数重载两次,一次使用std::nothrow_t,一次不使用。用后者包裹第一个
std::error_code my_function(std::nothrow_t) noexcept;
void my_function(); //throws
Run Code Online (Sandbox Code Playgroud)
不,这就是你要写的。
它本身并不坏,但如果您发现您的代码由于使用此构造的次数而变得丑陋,则可能表明您使用它太多了。
我发现自己偶尔会忽略例外情况,但如果这对您来说是“常态”,那么您的设计可能有问题。
| 归档时间: |
|
| 查看次数: |
4802 次 |
| 最近记录: |