使用uncaught_exceptions()在处理程序代码中重新抛出异常

时间:2016-06-24 08:12:58

标签: c++ exception

在堆栈展开期间,可以检查尚未处理的异常数。

应该使用什么,或者我不应该使用它?

uncaught_exceptions ()返回当前活动的例外数量。活跃意味着抛出或重新抛出但尚未处理。

据我所知,如果要终止程序或处理异常并将程序设置回良好状态(或重试),则可以在堆栈展开期间进行检查。 具体而言,这可能是析构函数中的情况,我可以保证不会抛出异常。

在同一个笔记Bjarne Stroustrup mentions中,在异常处理程序代码中重新抛出是不好的做法,因为我们很容易进入调用终止的情况。

N3614 unwinding_exception

N4152 uncaught_exceptions

N4259 Wording for std::uncaught_exceptions

GotW #47

0 个答案:

没有答案