2013-11-15 14 views
1

我的任務是創建一種全局錯誤處理解決方案,所以我創建了一個HttpModule以放入現有的ASP.NET解決方案中。有時,這些現有的網絡應用程序將有自己的錯誤處理(try/catch),可能會做一些特定的事情。HttpModule中的OnError將取代現有的任何現有錯誤處理嗎?

問題當應用程序遇到異常,請問OnErrorHttpModule火最後,因爲它已經超過了應用內特定的try/catch全球範圍?它會每隔一段時間發射一次嗎?將OnError捕獲每一個應用程序異常,處理和未處理?當我說處理我的意思是,如果我的應用程序中的某個地方的代碼的某個部分已經「處理」了一個錯誤,它會在OnError

回答

3

你的HttpModule將只能得到不被應用程序捕獲的異常,如clearly stated in the documentation

如果拋出異常的代碼是一個try...catch塊內,沒有例外傳播到全球的錯誤處理程序。

如果處理該異常並希望禁用默認的ASP.NET錯誤消息,則可以使用ClearError方法執行此操作。

如果您確實想知道所有例外情況,則可以使用AppDomain上的FirstChanceException事件直接在發生異常時收到通知。不過,你可能會發現比你期望的更多的異常 - 很多異常在框架內被拋出並被優雅地處理。

相關問題