1. 程式人生 > >try catch 不到異常的處理

try catch 不到異常的處理

vs2008中,工程的預設設定,對於被0除,讀取陣列越界等問題是無法通過try捕捉再catch的,系統直接就給出了錯誤對話方塊然後程式崩潰

據資料稱,上述異常均屬於 結構化異常(Structured Exception,可以理解為與作業系統相關的異常)並不屬於C++異常,所以預設設定並未讓try進行截獲,

這樣做為了對錯誤進行分層處理??

為了捕獲所有異常,可以在工程名右鍵,點選屬性-〉C++ -> 程式碼生成   對話方塊裡有“啟用c++異常”專案,將預設的 “是(/EHsc)” 改為 “是,但是有SEH異常(/EHa)”就可以了

另如下寫法可以捕獲所有異常

try{

}

catch(...)

{

}

更多參考連結

http://blog.csdn.net/chinafe/article/details/16802625