Heim > Backend-Entwicklung > C#.Net-Tutorial > Was ist der Fehlerbehandlungsmechanismus von .net?

Was ist der Fehlerbehandlungsmechanismus von .net?

藏色散人
Freigeben: 2020-09-15 14:57:32
nach vorne
6999 Leute haben es durchsucht

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.

Was ist der Fehlerbehandlungsmechanismus von .net?

.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(); //同样要注意这句代码的使用
  }
Nach dem Login kopieren

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 auf „Ein“ gesetzt sein.

this.ErrorPage = "~/ErrorHandling/PageError.html";
Nach dem Login kopieren

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(); 
     }
Nach dem Login kopieren

4. Konfigurationselement

Der -Konfigurationsabschnitt in der Konfigurationsdatei web.config kann die Umleitungsseite als Standardfehler angeben page defaultRedirect oder geben Sie eine bestimmte Seite basierend auf dem ausgelösten HTTP-Fehlercode an. Diese benutzerdefinierte Seite wird angezeigt, wenn ein Fehler auftritt, der auf keiner vorherigen Ebene der Anwendung erkannt wurde.

<customErrors mode="On" defaultRedirect="~/ErrorHandling/ApplicationError.html"> <error statusCode="404" redirect="~/ErrorHandling/404.html" /> </customErrors>
Nach dem Login kopieren

Wenn Application_Error und gleichzeitig vorhanden sind, gibt es ebenfalls ein Problem mit der Ausführungsreihenfolge. Da das Prioritätsereignis „Application_Error“ beim Auftreten eines Fehlers auf Anwendungsebene zuerst ausgeführt wird ; Konfigurationsabschnitt Das defaultRedirect funktioniert nicht, da die Ausnahme gelöscht wurde; wenn die Funktion Server.ClearError() nicht im Application_Error-Ereignis aufgerufen wird, wird die Fehlerseite auf die von defaultRedict angegebene URL-Seite verschoben, um eine benutzerfreundliche Fehlermeldung anzuzeigen an den Benutzer.

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!

Verwandte Etiketten:
Quelle:cnblogs.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage