首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 自訂錯誤處理頁面完整實作指南

     編輯:關於ASP.NET

通常 Web 應用程式發布後,為給用戶友好介面與體驗,錯誤發生時會導向自訂錯誤頁面,而非 ASP.NET 暴露的詳細例外清單。

簡單錯誤處理頁面可透過 web.config 設定:

<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>

若想透過程式設計方式呈現錯誤原因,可用 Page_Error 事件。

另一種方式透過 Global.asax 實現,我覺得較方便,若結合獨立友好頁面則更舒適:

void Application_Error(object sender, EventArgs e)
{
Exception objErr = Server.GetLastError().GetBaseException();
string error = "發生異常頁: " + Request.Url.ToString() + "<br>";
error += "異常資訊: " + objErr.Message + "<br>";
Server.ClearError();
Application["error"] = error;
Response.Redirect("~/ErrorPage/ErrorPage.aspx");
}
ErrorPage.aspx
protected void Page_Load(object sender, EventArgs e)
{
ErrorMessageLabel.Text = Application["error"].ToString();
}

當最終用戶使用應用程式時,可能不想知道錯誤原因,可透過核取方塊決定是否呈現錯誤原因。將 Label 放在 div 中,用核取方塊決定是否顯示 div。

<script language="javascript" type="text/javascript">
<!--
function CheckError_onclick() {
var chk = document.getElementById("CheckError");
var divError = document.getElementById("errorMsg");
if(chk.checked)
{
divError.style.display = "inline";
}
else
{
divError.style.display = "none";
}
}
// -->
</script>

我們可以對 errorpage 這頁做更親切設計,讓人看起來更舒服。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved