我有一個Windows窗體應用程序。它使用Assembly.LoadFile加載擴展名爲.Plugin.dll的程序集。其中一個「插件」調用另一個程序集dll。該DLL最終拋出一個ValidationException異常。拋出異常的方法是從IDataErrorInfo繼承的類中。該類是包含在Linq to SQL類(.dbml)中的類。在「插件」中,我調用了DataContext.SubmitChanges。這被包裝在try/catch塊中。這會導致我的業務邏輯在提交給OnValidate覆蓋中的數據庫之前驗證數據。我看到的結果是在拋出ValidationExeption之後,調試器停在OnValidate方法的底部,表示發生了未處理的異常。如果我繼續運行應用程序,則執行catch代碼塊。這是我首先想要的,但爲什麼當它真正處理時我得到了未處理的異常?Windows窗體應用程序中未處理的異常
2
A
回答
0
我99%確定你的「真正的」異常導致這個確實沒有處理 - 這是調試器在第一時間告訴你的,而且他一般是正確的。
當你繼續在VS中運行應用程序後,實際上並不是當你將EXE從調試器中移出時會發生什麼。實際上,調試器會首先通知您未處理的異常,然後繼續執行一些待處理的邏輯(如果有的話)(這就是爲什麼您會看到ValidationException錯誤)。但未處理的異常仍然存在。我不完全知道這種行爲的細節和原因,但我注意到了很多次。
您必須在確定出現unhandledexception的確切位置處發現精確錯誤。 也許發佈你的代碼示例會有所幫助。
0
首先,是同一AppDomain中的插件嗎?其次,它聽起來像是你有你的調試器來「拋出異常時中斷」而不是「當異常是用戶未處理時中斷」。
在VS.NET,進入調試 - >例外...
展開「通用語言運行時例外」節點,看看有沒有被勾選。
相關問題
- 1. 在Windows窗體中未處理的非UI線程異常
- 2. Windows窗體應用程序異常
- 3. 窗口服務應用程序中未處理的異常
- 4. 針對Windows窗體的未處理的異常日誌記錄
- 5. Windows窗體未處理的異常對話框
- 6. Windows窗體應用程序中的.net遠程處理對象
- 7. Breakpad異常處理程序未在Windows上的DLL中使用?
- 8. Windows窗體應用程序中的無效操作異常
- 9. C++程序中未處理的異常
- 10. .net安全地處理非窗體和非WPF應用程序中未處理的異常
- 11. 在Windows窗體應用程序中捕獲應用程序異常
- 12. 在Windows窗體應用程序中處理EF的驗證
- 13. Windows應用程序c中的異常處理#
- 14. ASP.Net未處理的異常處理程序來操縱響應
- 15. 異常窗體應用程序
- 16. C++ Windows窗體應用程序未處理的異常錯誤時,文本框爲空
- 17. 在saprk流媒體應用程序中的異常處理
- 18. 在應用程序中發生未處理的win32異常
- 19. Winforms應用程序中未處理的異常
- 20. Windows服務中未處理的異常
- 21. 的iOS應用程序異常處理
- 22. WPF應用程序的異常處理
- 23. 如何在windows phone 7應用程序中捕獲未處理的異常?
- 24. .NET 1.1中的未處理的異常處理程序
- 25. Windows窗體應用程序異常陷印
- 26. 如何在Windows登錄異常窗體應用程序
- 27. Windows窗體應用程序的C#圖像處理
- 28. 未處理的異常未被處理程序捕獲
- 29. 異常處理應用程序塊
- 30. 未處理的異常發生在您的應用程序C#
什麼是堆棧跟蹤說異常源自何處?這可能有幫助。 – 2012-02-01 18:02:56