pau*_*doo 13 c++ exception visual-c++
在C++(MSVC)中,如何测试异常当前是否"在飞行中".即,作为类析构函数的一部分被调用的代码可能会被调用,因为异常正在展开堆栈.如何检测这种情况,而不是正常情况下由于正常返回而调用析构函数?
实际上可以这样做,在<exception>标头中调用uncaught_exception().您可能想要这样做的一个原因是在析构函数中抛出异常之前,如果将析构函数作为堆栈展开的一部分调用,则会导致程序终止.请参阅http://msdn.microsoft.com/en-us/library/k1atwat8%28VS.71%29.aspx