Der Fehlerbehandlungsmechanismus von .NET ist: 1. [Page_Error]-Ereignis; 2. ErrorPage-Attribut; 3. [
]-Konfigurationselement; Die oben genannten vier Verarbeitungsmechanismen werden hauptsächlich für die Ausnahmebehandlung und die Fehlerbehandlung auf Seitenebene verwendet.
.NET bietet vier Fehlerbehandlungsmechanismen:
1.Page_Error-Ereignis
Das Page_Error-Ereignis bietet eine Möglichkeit, Fehler zu erfassen, die auf Seitenebene auftreten. Sie können einfach eine Fehlermeldung anzeigen (wie im Beispielcode unten gezeigt), ein Ereignis protokollieren oder eine andere Aktion ausführen.
private void Page_Load(object sender, System.EventArgs e) { // Put user code to initialize the page here throw new Exception("Page Error!"); } protected void Page_Error(object sender, EventArgs e) { Exception objErr = Server.GetLastError().GetBaseException(); Response.Write("Error:" + objErr.Message); Server.ClearError(); //同样要注意这句代码的使用 }
Hinweis: Dieses Beispiel zeigt eine detaillierte Fehlermeldung im Browser an und dient nur zur Veranschaulichung. Seien Sie vorsichtig, wenn Sie den Endbenutzern Ihrer Anwendung detaillierte Informationen anzeigen. Sinnvoller ist es, dem Benutzer eine Meldung anzuzeigen, dass ein Fehler aufgetreten ist, und dann die spezifischen Fehlerdetails zu protokollieren.
2. ErrorPage-Attribut
Sie können das ErrorPage-Attribut fast jederzeit auf der Seite festlegen, um zu bestimmen, zu welcher Seite weitergeleitet wird, wenn ein Fehler auftritt. Damit das ErrorPage-Attribut funktioniert, muss das Modusattribut im Konfigurationselement
this.ErrorPage = "~/ErrorHandling/PageError.html";
Wenn sowohl Page_Error als auch ErrorPage vorhanden sind, wie ist die Reihenfolge der Seitenausführung, wenn eine Ausnahme ausgelöst wird? Wenn die Funktion Server.ClearError() im Page_Error()-Ereignis aufgerufen wird, um die Ausnahmeinformationen zu löschen, springt die Seite nicht zu der durch das ErrorPage-Attribut angegebenen Seite () wird nicht aufgerufen, die Ausnahmeinformationen werden nach oben geworfen und die Seite springt zu der durch ErrorPage angegebenen Seite. Dies beweist auch die Reihenfolge der Priorität: Page_Error-Ereignis > ErrorPage-Attribut.
3.Application_Error-Ereignis
Ähnlich wie das Page_Error-Ereignis können Sie das Application_Error-Ereignis verwenden, um Fehler zu erfassen, die in der Anwendung auftreten. Da Ereignisse anwendungsweit auftreten, können Sie Anwendungsfehlerinformationen protokollieren oder andere möglicherweise auftretende Fehler auf Anwendungsebene behandeln. Fügen Sie den folgenden Code zur Datei Global.asax hinzu und alles ist in Ordnung.
protected void Application_Error(object sender, EventArgs e) { Exception ex = Server.GetLastError().GetBaseException(); //实际应用中这里可以将Exception信息记Log或是保存到数据库中 //还可以将错误发邮件给网站维护人员 Response.Write("Error:" + ex.Message); //清除Exception,避免继续传递给上一级处理 //这里上级就是<CustomerErrors>配置节了 Server.ClearError(); }
4.
Der
<customErrors mode="On" defaultRedirect="~/ErrorHandling/ApplicationError.html"> <error statusCode="404" redirect="~/ErrorHandling/404.html" /> </customErrors>
Wenn Application_Error und
Durch die Analyse der oben genannten vier von .NET bereitgestellten Fehlerbehandlungsmechanismen können wir sie aus verschiedenen Perspektiven klassifizieren, um unser Verständnis und ihre Verwendung zu erleichtern.
1. Funktional klassifiziert: Für die Ausnahmebehandlung (Behandlung von Ausnahmen) werden das Page_Error-Ereignis und das Application_Error-Ereignis verwendet. Für die Umleitung der Benutzerfehlerseite (Umleitung des Benutzers auf eine Fehlerseite) werden das Attribut ErrorPage und 2. Klassifizierung aus dem Bereich der Fehlerbehandlung: Das Page_Error-Ereignis und das ErrorPage-Attribut werden für die Fehlerbehandlung auf Seitenebene und das ;customErrors>Konfigurationselement verwendet. Das obige ist der detaillierte Inhalt vonWas ist der Fehlerbehandlungsmechanismus von .net?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!