在VC++中混用C++異常和結構化異常

 在初學VC的時候,總以爲try()catch(...)可以抓到所有的異常. 在開發之前開發的一個服務器程序中,才發現服務器經常莫名其妙的宕機了.一直覺得很詭異.

   直到後來看了很多資料才明白結構化異常跟C++異常是兩套東西,不統一。有些異常try.catch不一定能不抓到. 要將兩種異常共同使用.下面的代碼可以達到目的. 使用下面異常類,可以使程序更穩定.(注意:編譯選項裏面要記得打開 結構化異常開關. compile with: /EHa)

 

另外可以調用MS提供的函數SetUnhandledExceptionFilter, 這是程序異常未處理的最後一到防線.可以在回調函數中寫出DUMP文件,然後通過PDB文件來調試看到宕機的源代碼段.

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