標(biāo)準(zhǔn) uncaught_exception() 函數(shù)提供了對是否還有活動異常的判斷。非常值得注意的是,它不表明是否可以安全地拋出異常。
指導(dǎo)原則:
- 千萬不要從析構(gòu)函數(shù)內(nèi)拋出異常。原因是如果當(dāng)存在另一個(gè)活動異常,而析構(gòu)函數(shù)又拋出一個(gè)異常時(shí)(堆棧展開時(shí)),程序?qū)⒈唤K止。寫析構(gòu)函數(shù)時(shí)加上空的異常規(guī)格,因?yàn)楫惓R?guī)格將帶來額外的代價(jià),因此可以將它寫成注釋的形式。
- 如果析構(gòu)函數(shù)調(diào)用一個(gè)可能拋出異常的函數(shù),一定要將它包含在一個(gè) try/catch 塊內(nèi)以防止異常傳出。
最后一點(diǎn),uncaught_exception() 沒有安全的用途,因此建議不要使用。
文章來源:
http://my.donews.com/robinchow/2007/01/29/jxfinmwnxhfofnvifzmrkqjgteyknbfxzlfn/