2009-07-15 29 views
4

我在ASP.NET MVC中構建一個小應用程序。我仍然試圖找到解決我遇到的一些設計問題的方法。在ASP.NET MVC中,應該將OnException用於應用程序異常嗎?

其中之一是使用例外。我構建了我的模型,以便在對象不存在或用戶無法訪問時引發異常。在我看來,我認爲我做出了正確的選擇。

問題是,接下來會發生什麼?我可以檢查控制器中的異常,並重定向到不同的視圖,但似乎在許多控制器的許多操作中產生了許多相同的模式。

或者,我可以簡單地避免檢查異常並重寫控制器的OnException方法(或者我將使用的一些基本控制器類)來處理它。這會讓我的行爲混亂不堪。

從我找到的例子中,我可以看到如何使用HandleError和OnException記錄未處理的異常(這是一件好事)並重定向到「抱歉!」。頁面,但我想知道您對使用較少「意外」異常機制的意見。

回答

3

你應該檢查HandleError屬性。你可以指定哪個視圖應該顯示哪個異常。 ASP.NET MVC HandleError這是MVC特有的,對我來說比使用該事件感覺更「乾淨」。

除了HandleError,我還使用ELMAH來捕獲和記錄異常。

就我個人而言,我試圖達到所有生成的異常都在控制器級捕獲並且沒有冒泡的地步。然而,[handleerror]完全是這樣 - 捕獲錯誤並向用戶顯示相關的漂亮頁面。

編輯:另請注意,您可以在控制器上指定它,而不僅僅是操作。

James

+0

是的。根據文檔,我在HandleError屬性中遇到的問題是它不能在調試模式下運行。事實上,我根本沒有得到它的工作。 – 2009-07-15 07:50:24

相關問題