1. 程式人生 > >windows 多執行緒捕獲未處理的異常,防止崩潰的地方影響到其它執行緒

windows 多執行緒捕獲未處理的異常,防止崩潰的地方影響到其它執行緒

一個windows程式,多執行緒,若有執行緒A、B,線上程A中有類似程式碼

              MyClass * pClass;

              pClass=NULL;

              pClass->GetData();

 若pClass未進行正確賦值(為NULL),則會出現異常,並且此異常try{}  catch(){} 捕獲不到,

此時程式將崩潰,執行緒A、B都不能運行了,但是如果做相關處理,則只是A執行緒崩潰,B

正常執行!!

方法:

    在啟動執行緒A、B之前呼叫SetUnhandleExceptionFilter函式,設定回撥函式來處理捕獲的異常

   如:在回撥函式中呼叫AfxMessageBox等,即可達到上述目的