2014-05-20 21 views
3

我遇到了C#應用程序的滋擾問題。爲了簡化這個場景,我有一個主要的.exe項目,它引用另一個C#庫作爲直接的DLL依賴項。這個DLL在特定的地方拋出異常,調試器正在打破這些異常。但是,異常處理並不會重新拋出。我在VS中的異常對話框被選中,只讓調試器在這種類型的用戶未處理的異常(InvalidOperationException)上中斷,但它仍然中斷。當庫鏈接爲DLL時,VisualStudio調試程序突破處理的異常

但是如果我將相同的庫鏈接爲項目引用(而不是編譯的DLL),則調試程序不再在此異常中斷開。

同樣,如果我直接運行.exe程序(在調試器外部),我看不到任何證據表明這個異常沒有像我期望的那樣得到處理。沒有錯誤,我的日誌記錄表明預期的控制流程。

相關代碼在一段時間內基本沒有變化,但我重構了我的解決方案和項目;我以前只使用項目引用,所以在去DLL引用之前可能從未發現過這個問題。

任何人都可以建議任何其他我可能會看到爲什麼調試器打破這個處理的異常?

+0

很奇怪。如果刪除相關的dll的pdb會怎麼樣? – Ikaso

+0

沒有變化;事實上在這種情況下PDB不存在。 (但我確實嘗試了包含PDB的相同場景) –

+0

看一看[this](http://stackoverflow.com/questions/10201622/how-can-i-prevent-swallowed-exceptions-in-3rd-party -libraries-from-triggering-th?rq = 1)SO問題。 – Ikaso

回答