健壯而有效的錯誤處理策略應遵循以下3項原則
- 預測問題,用try/catch/finally快將可能出錯的代碼包起來。這雖然不足以確保不會出現異常,但至少能夠正確處理一般的異常。
- 避免出現未處理異常。只要遵循這項原則,即使某個問題沒有被預料到,也不會使用戶看到異常頁面。這可以同時在頁面級和應用程序級設置。顯然,應用程序級的錯誤處理程序比頁面級處理程序更重要。
- 應確保錯誤頁面不會泄露任何敏感信息。如有必要,可以將本地與遠程用戶區別對待,而只對前者顯示詳細信息
if(Request.UserHostAdress=="127.0.0.1")
{
...............
}
PS.大多數情況下,自定義的錯誤頁面由純HTML編寫而成,這樣便不會以遞歸方式引發錯誤。然而,如果錯誤頁面又引起另外的錯誤,asp.net默認的一般性錯誤頁面仍然會被顯示出來。