2012-07-31 67 views
1

我有一個自定義的ActionResult,當遠程主機關閉連接時,它會更深層地遇到System.Web.HttpException。我已經重寫了Controller的OnException方法,但它沒有被捕獲。 ASP.NET MVC管道已經完成執行我的Controller的Action,並且在遇到此異常時正在執行返回的ActionResult。如何處理ASP.NET MVC ActionResult異常?

目前,它正在冒泡並將我的日誌作爲一個錯誤混亂。我寧願不在記錄時間過濾這些內容,因爲我不認爲遠程主機中止下載內容是一個錯誤。

我寧願直接處理這個錯誤,但我不知道在哪裏。 Controller.OnException不起作用,所以我懷疑IExceptionFilter會。我可以使用Application_OnError,但是我擔心這太高了。

是不是有更多的MVC'ish方式?

回答

2

在Controller.OnException和Application_OnError之間沒有其他要捕捉異常的點。勇敢並使用Application_OnError

2

您可以使用HandleErrorAttribute來處理在控制器操作中拋出的異常。正如你在你的問題中指出的那樣,我會懷疑這個錯誤超出了這個屬性的範圍。這將只留下Application_OnError。

您可以將白名單添加到您的錯誤處理代碼中以忽略特定錯誤(具體代碼的具體類型以及可能的特定源/堆棧跟蹤)。