標準 uncaught_exception() 函數提供了對是否還有活動異常的判斷。非常值得注意的是,它不表明是否可以安全地拋出異常。
指導原則:
- 千萬不要從析構函數內拋出異常。原因是如果當存在另一個活動異常,而析構函數又拋出一個異常時(堆棧展開時),程序將被終止。寫析構函數時加上空的異常規格,因為異常規格將帶來額外的代價,因此可以將它寫成注釋的形式。
- 如果析構函數調用一個可能拋出異常的函數,一定要將它包含在一個 try/catch 塊內以防止異常傳出。
最后一點,uncaught_exception() 沒有安全的用途,因此建議不要使用。
文章來源:
http://my.donews.com/robinchow/2007/01/29/jxfinmwnxhfofnvifzmrkqjgteyknbfxzlfn/