2012-05-10 39 views
-1

我有一個c#asp.net項目,其中一個ascx繼承自一個基礎ascx。在這個基礎ascx中,我想放一個記錄錯誤的page_error方法。捕獲所有頁面級錯誤,而不會打破頁面

我想,如果派生類中的某些東西壞了,說一個空引用異常,它不會向用戶顯示一個錯誤屏幕。實際上,我希望每一行代碼都像它被封裝在自己的try catch中一樣,所以如果這個null ref異常發生,它只會記錄該行的錯誤,然後跳到下一行繼續前進。

這是可能的,我將如何去實現呢?

回答

3

不,這是不可能的。如果拋出一個UnhandledException,你的Page_Error事件將不可避免地發生異常並且正常的頁面執行被中斷。總的來說,我認爲你想要做的是不良練習。我不會走那條路。

+0

我同意。尤其是使用Null參考示例。空引用異常幾乎總是程序員的錯誤。修復錯誤! – asawyer

+0

+1這是非常糟糕的。讓我想起經典的ASP'錯誤恢復下一個',這引起了各種各樣的混亂。 –

+0

不可能並不意味着不好的做法。 :)我有一個頁面,其中有許多獨立部分可能會失敗,但不希望中斷其他不依賴於它們的部分的流程。我只是想知道這條路線,而不是爲一堆方法拋出一堆嘗試。我認爲這很酷,但我想我會選擇哪些方法需要錯誤記錄。感謝你的回答。 – JMD