所以我們有一個我們正在使用的基本控制器,它包含一個OnException的重寫,它將錯誤記錄到我們的錯誤跟蹤工具。但是我注意到一些錯誤從來沒有實現過,而且我想知道是否期望應用程序記錄所有錯誤本身就是錯誤的東西,這可能會導致一些錯誤永遠不會被捕獲..?無論哪種方式,最好的解決方案是什麼,或者應該總是預期會發生OnException?我應該在Windows Server上放置一些工具來記錄錯誤,而不是在應用程序本身中?如何捕獲甚至沒有被OnException覆蓋捕獲的錯誤?
3
A
回答
2
我不認爲我曾經見過一個錯誤,在某些時候無法捕獲。我也有應用程序級別的日誌記錄,就像你我已經實現了一個基礎控制器。
我的基礎控制器不做任何日誌記錄。相反,我創建了一個自定義動作過濾器,我用它來裝飾我的控制器和動作,並完成所有日誌記錄。
我還在global.asax中添加了一些代碼給Application_Error事件,該事件做了一些日誌記錄,並且還調用錯誤控制器來處理實際的錯誤。
我希望這能以某種方式幫助你。如果你想要我提到的任何代碼,然後添加評論給這個答案,我會提供。它也不是很多代碼。
2
Controller.OnException事件只能捕獲正在執行的Controller的範圍中引發的事件。在http請求映射到控制器之前會發生事件,並且OnException事件不會捕獲這些事件。例如,如果您有一個將RequestContext映射到特定控制器的控制器工廠,則此處拋出的異常不在Controller的範圍內。
你應該在global.asax.Application_Error事件中實現一個「fail safe」異常處理程序。
相關問題
- 1. Hadoop:Reducer類甚至沒有被覆蓋
- 2. 的Node.js的類型錯誤甚至崩潰,而捕獲捕獲的異常
- 3. Global.asax沒有捕獲錯誤?
- 4. 崩潰(沒有被dispatcherunhandleception捕獲,也沒有被app.unhandledexception捕獲)
- 5. 捕獲錯誤,但沒有錯誤
- 6. 如何通過JUnit覆蓋塊捕獲
- 7. System.Net.WebException沒有被捕獲
- 8. 如何確保沒有錯誤在WCF中未被捕獲
- 9. 未被捕獲的錯誤:[$ injector:modulerr]和未被捕獲的錯誤:[$ injector:nomod]
- 10. 錯誤:未被捕獲(諾言):錯誤:沒有GoogleMaps供應商
- 11. NW.JS未捕獲的錯誤:沒有module_name
- 12. 捕獲錯誤
- 13. Camel onException不會捕獲idempotentConsumer的NoMessageIdException?
- 14. 如何捕獲WMI錯誤
- 15. 如何捕獲錯誤(200)
- 16. jQuery Validation插件沒有捕獲錯誤
- 17. ASP.NET MVC2 DataAnnotations沒有捕獲錯誤
- 18. 嵌套tryCatch沒有捕獲錯誤?
- 19. 「捕獲」的錯誤
- 20. Pdo錯誤捕獲嘗試/捕獲
- 21. 獲取的RuntimeException甚至有嘗試捕捉
- 22. 捕獲塊沒有捕獲異常
- 23. ASP.NET MVC OnException - 嘗試捕獲所需?
- 24. 未被捕獲的錯誤:沒有模塊:angularTypeahead
- 25. 未被捕獲的錯誤:沒有模塊:firebaseSimpleLogin
- 26. 未捕獲的OAuthException - 如何捕獲此錯誤?
- 27. 未被捕獲的錯誤:INDEX_SIZE_ERR
- 28. 角路由未被捕獲的錯誤
- 29. angular.js:38未被捕獲的錯誤:[$ injector:modulerr]
- 30. 未被捕獲的錯誤:[$ injector:modulerr]