所謂的“普通”C++異常處理使用了三條附加的c++語句:try,catch和throw。這些語句的作用是,當正在執行的程式出現異常情況時,允許一個程式(異常處理程式)試著找到該程式的一個安全出口。異常處理程式可以捕獲任何資料型別上的異常情況,包括C++類。這三條語句的實現是以針對異常處理的ISO WG21/ANSI X3J16 C++標準為基礎的,Microsoft C++支援基於這個標準的異常處理。注意,這個標準只適用於C++,而不適用於C。
結構化異常處理是Microsoft c/c++編譯程式的一種功能擴充,它的最大好處就是它對C和C++都適用。Microsoft的結構化異常處理使用了兩種新的結構:try—except和try-finally。這兩種結構既不是ANSI c++標準的子集,也不是它的父集,而是異常處理的另一種實現(Microsoft會繼續在這方面努力的)。try—except結構被稱為異常處理(exception handling),tryfinally結構被稱為終止處理(termination handling)。try—except語句允許應用程式檢索發生異常情況時的機器狀態,在向用戶顯示出錯資訊時,或者在除錯程式時,它能帶來很大的方便。在程式的正常執行被中斷時,try—finally語句使應用程式能確保去執行清理程式。儘管結構化異常處理有它的優點,但它也有缺點——它不是一種ANSI標準,因此,與使用ANSI異常處理的程式相比,使用結構化異常處理的程式的可移植性要差一些。如果你想編寫一個真正的C++應用程式,那麼你最好使用ANSI異常處理(即使用try,catch和throw語句)。
所謂的“普通”C++異常處理使用了三條附加的c++語句:try,catch和throw。這些語句的作用是,當正在執行的程式出現異常情況時,允許一個程式(異常處理程式)試著找到該程式的一個安全出口。異常處理程式可以捕獲任何資料型別上的異常情況,包括C++類。這三條語句的實現是以針對異常處理的ISO WG21/ANSI X3J16 C++標準為基礎的,Microsoft C++支援基於這個標準的異常處理。注意,這個標準只適用於C++,而不適用於C。
結構化異常處理是Microsoft c/c++編譯程式的一種功能擴充,它的最大好處就是它對C和C++都適用。Microsoft的結構化異常處理使用了兩種新的結構:try—except和try-finally。這兩種結構既不是ANSI c++標準的子集,也不是它的父集,而是異常處理的另一種實現(Microsoft會繼續在這方面努力的)。try—except結構被稱為異常處理(exception handling),tryfinally結構被稱為終止處理(termination handling)。try—except語句允許應用程式檢索發生異常情況時的機器狀態,在向用戶顯示出錯資訊時,或者在除錯程式時,它能帶來很大的方便。在程式的正常執行被中斷時,try—finally語句使應用程式能確保去執行清理程式。儘管結構化異常處理有它的優點,但它也有缺點——它不是一種ANSI標準,因此,與使用ANSI異常處理的程式相比,使用結構化異常處理的程式的可移植性要差一些。如果你想編寫一個真正的C++應用程式,那麼你最好使用ANSI異常處理(即使用try,catch和throw語句)。