Um Benutzern eine benutzerfreundliche Oberfläche und Benutzererfahrung zu bieten, springt eine Webanwendung nach der Veröffentlichung normalerweise zu einer benutzerdefinierten Fehlerseite, wenn ein Fehler auftritt, und nicht zu der detaillierten Ausnahmeliste, die dem Benutzer von ASP.NET angezeigt wird.
Eine einfache Fehlerbehandlungsseite kann über web.config eingestellt werden
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" weitergeleitet="NoAccess.htm" />
<error statusCode="404" weitergeleitet="FileNotFound.htm" />
</customErrors>
Wenn Sie die Fehlerursache programmgesteuert darstellen möchten, können Sie dies über das Page_Error-Ereignis tun.
Ein anderer Weg kann über Global.asax erreicht werden. Ich denke, dieser Weg ist bequemer, wenn er mit einer separaten, benutzerfreundlicheren Seite kombiniert werden kann.
Global.asax (Fehlerprotokollierung, falls erforderlich) void Application_Error(object sender, EventArgs e)
{
Ausnahme objErr = Server.GetLastError().GetBaseException();
string error = "Ausnahmeseite: " + Request.Url.ToString() + "<br>";
error += "Ausnahmemeldung: " + objErr.Message + "<br>";
Server.ClearError();
Anwendung["error"] = Fehler;
Response.Redirect("~/ErrorPage/ErrorPage.aspx");
}
ErrorPage.aspx
protected void Page_Load(object sender, EventArgs e)
{
ErrorMessageLabel.Text = Application["error"].ToString();
}Wenn Endbenutzer die Anwendung verwenden, möchten sie möglicherweise nicht die Ursache des Fehlers wissen. Zu diesem Zeitpunkt können wir mithilfe von Kontrollkästchen bestimmen, ob die Fehlerursache angezeigt werden soll. Sie können das Label in ein Div einfügen und dann mithilfe des Kontrollkästchens entscheiden, ob das Div gerendert werden soll
<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";
}
anders
{
divError.style.display = "none";
}
}
// -->
</script>
http://www.cnblogs.com/EasyLive2006/archive/2007/01/07/613922.html