2010-05-19 34 views

回答

-1

對我來說,基本控制器上的HandleError就像是用try {} catch {}塊來包圍整個應用程序。你基本上已經停止了處理異常,例如異常使它們在你的應用程序中正常發生。

你只能「捕捉」你知道可能發生的事情,而不是所有可能發生的事情。

+0

HandleError本身非常通用,除非您從它派生出來創建自定義HandleError屬性。它所做的只是將瀏覽器重定向到錯誤頁面。正是在這種情況下,我問了原來的問題。實際上並不是像處理未處理的異常那樣「處理」任何特定的異常。 例如,我使用ELMAH記錄未處理的異常,但我想使用HandleError。因此,除了發生默認重定向之外,我還創建了派生的HandleError以記錄到ELMAH。這是非常通用的,並不像您所看到的那樣是特定於控制器的。 – 2010-05-20 18:18:55

+0

對我來說,將用戶重定向到錯誤頁面是以某種方式處理錯誤。這是「證明我錯了」的問題嗎? – jfar 2010-05-20 18:50:21

+2

不知道你的意思是「證明我錯了」的問題......但是,重定向到錯誤頁面正在處理錯誤,但它是通用的,它適用於所有控制器,爲什麼我不把一個HandleError放在基礎上控制器,並完成它? – 2010-05-20 21:40:26

1

我知道這個問題是舊的,但如果你現在使用MVC 3,我建議使用全局過濾器來代替。請參閱Scott Guthrie的文章的全局篩選器部分here

相關問題