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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章