我有一個相當大的.NET解決方案,具有較差的異常處理。原作者的意思很好,捕獲特定類型的異常而不是基本的異常類,但是,這導致我可以計算的地方超過了某個類型的異常被拋出但沒有被捕獲到的地方,並且使軟件不可靠。如何執行代碼分析以確定解決方案中的異常類型可以拋出但未被捕獲?查找未處理的異常 - .NET
4
A
回答
2
您可以添加一個全局異常處理程序,該異常處理程序記錄包含堆棧跟蹤的異常,併爲用戶提供一個很好的錯誤對話框。您可以使用堆棧跟蹤來識別代碼中會產生錯誤的地方,並更好地處理這些情況。儘可能地記錄日誌。
你怎麼做,取決於平臺(Web窗體,MVC,的WinForms,WPF,...?)
而且,強調整個代碼庫的錯誤處理進行了深入的代碼審查可能趕上許多錯誤在它們表現爲用戶錯誤之前。
1
這就是我如何處理它們。在我的Program.cs
的Main
方法中,我設置了事件處理。之後,您將這些事件放入您想要的代碼中。
Application.ThreadException += Form1_UIThreadException;
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
編輯:這是爲非基於Web的應用程序。
+0
假設Windows Forms是平臺。 – driis
0
任何未捕獲的異常都是未處理的。好消息是您可以訂閱該AppDomain.CurrentDomain.UnhandledException事件。
這將處理任何未捕獲的異常。
如何執行代碼分析以確定解決方案中的異常類型可以拋出但未被捕獲的位置?
像StyleCop這樣的程序會突出顯示可能的未處理的異常。
0
除了答案中提到的內容外,您還可以使用Pex等工具。它可以讓你自動創建一個測試套件,涵蓋了很多的
相關問題
- 1. .NET未處理的異常
- 2. .NET異常從表中查找處理
- 3. 查找中未處理的異常[根異常是org.omg.CORBA.MARSHAL:
- 4. .NET未處理的異常從母版
- 5. WCF Rest .NET 4.0未處理的異常
- 6. Microsoft .NET Framework未處理異常
- 7. 處理未處理的異常
- 8. 處理.net中的異常
- 9. .NET 1.1中的未處理的異常處理程序
- 10. linq查詢中未處理的異常
- 11. 處理文件未找到異常?
- 12. 未處理的異常異常
- 13. .NET PInvoke異常處理
- 14. 處理未處理的異常
- 15. 處理未處理的異常問題
- 16. 如何處理未處理的異常?
- 17. DRf,處理未處理的異常
- 18. 未處理的異常
- 19. 未處理的異常
- 20. 未處理的異常
- 21. 未處理的異常:system.typeInitializationException
- 22. createTriangleMesh未處理的異常
- 23. 未處理的異常
- 24. 未處理的異常 「System.IndexOutOfRangeException」
- 25. Cyclone.exe - 未處理的異常
- 26. 未處理的異常java.io.iOException
- 27. ArUco - 未處理的異常
- 28. 未處理的異常MSVCRTD.DLL
- 29. 未處理的異常
- 30. 未處理的異常
EceptionHunter是應該幫助你的代碼的邊界情況。 http://www.red-gate.com/products/dotnet-development/exception-hunter/我從來沒有使用它,但我喜歡他們的分析器。 –