c – 检测由于异常抛出的析构函数运行?
发布时间:2020-12-16 05:37:03 所属栏目:百科 来源:网络整理
导读:在析构函数中检测到它是一个很好的方法,它是在抛出堆栈时运行的,因为异常被抛出,而不是触发析构函数的范围的正常退出.我想知道,所以我可以创建一个有一些清理代码的类,它始终在正常退出时运行,但是在发生异常时跳过. 解决方法 std :: uncaught_exception()(
在析构函数中检测到它是一个很好的方法,它是在抛出堆栈时运行的,因为异常被抛出,而不是触发析构函数的范围的正常退出.我想知道,所以我可以创建一个有一些清理代码的类,它始终在正常退出时运行,但是在发生异常时跳过.
解决方法
std :: uncaught_exception()(在< exception>中定义)会在你的析构函数中告诉你,如果它被调用是因为一个异常:
class A { public: ~A() { if (std::uncaught_exception()) { // Called because of an exception } else { // No exception } } }; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |