vs2008中,工程的默認設置,對於被0除,讀取數組越界等問題是無法通過try捕捉再catch的,系統直接就給出了錯誤對話框然後程序崩潰
據資料稱,上述異常均屬於 結構化異常(Structured Exception,可以理解爲與操作系統相關的異常)並不屬於C++異常,所以默認設置並未讓try進行截獲,
這樣做爲了對錯誤進行分層處理??
爲了捕獲所有異常,可以在工程名右鍵,點擊屬性-〉C++ -> 代碼生成 對話框裏有“啓用c++異常”項目,將默認的 “是(/EHsc)” 改爲 “是,但是有SEH異常(/EHa)”就可以了
另如下寫法可以捕獲所有異常
try{
}
catch(...)
{
}
更多參考鏈接
http://blog.csdn.net/chinafe/article/details/16802625