HOW TO:處理頁面層級的錯誤

更新:2007 年 11 月

在可能的情況下,您應該處理程式碼內 Try/Catch 區塊中的錯誤,因為在發生問題的地方比較容易修正。如果使用者能協助修正問題,頁面則必須傳回同一個位置,讓使用者有上下文可以了解要做什麼。

頁面層級處理常式會將您返回到頁面上,但因為沒有建立控制項的執行個體 (Instance),所以頁面上還是空無一物。為了提供使用者任何資訊,您必須具體將其寫入頁面。

您或許會使用頁面層級的錯誤處理常式,記錄未處理的錯誤或將使用者帶入可顯示有用資訊的頁面。

這個程式碼範例示範 ASP.NET Web 網頁中 Error 事件的處理常式。這個處理常式會攔截頁面中 Try/Catch 區塊內所有尚未處理的例外狀況 (Exception)。

在處理錯誤之後,必須呼叫 Server 物件 (屬於 HttpServerUtility 類別) 的 ClearError 方法來清除錯誤。

範例

這個處理常式會篩選出特定種類的例外狀況。對於 ArgumentOutOfRangeException 例外狀況,處理常式會在頁面上寫入部分文字、提供連回頁面的連結,並通知系統管理員。對於 InvalidOperationException 例外狀況,處理常式只會將例外狀況傳送至泛型錯誤頁面。對於其他種類的例外狀況,處理常式則不做任何處理,讓網站自動導向至 Web.config 檔案中所指定的泛型頁面。這樣,您自己的程式碼就會篩選出對應用程式重要的例外狀況。

下列範例是錯誤處理常式的完整範例中完整程式碼範例的一部分。

安全性

使用 <customErrors> 項目以限制為只對本機使用者顯示詳細錯誤訊息。

請確定不會顯示可能有助於惡意使用者破壞應用程式的錯誤資訊。如需詳細資訊,請參閱 HOW TO:顯示安全錯誤訊息

請參閱

工作

HOW TO:處理應用程式層級的錯誤

概念

錯誤處理常式的完整範例