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

Was ist der Fehlerbehandlungsmechanismus von .net?

藏色散人
藏色散人nach vorne
2019-04-26 13:35:517022Durchsuche

Der Fehlerbehandlungsmechanismus von .NET ist: 1. [Page_Error]-Ereignis; 2. ErrorPage-Attribut; 3. [930ac17b94b9e98609d20e97126e0d94]-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(); //同样要注意这句代码的使用
  }

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

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.930ac17b94b9e98609d20e97126e0d94 Konfigurationselement

Der 930ac17b94b9e98609d20e97126e0d94-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>

Wenn Application_Error und 57eeb7803b8d23e3b64c46876f20d8de gleichzeitig vorhanden sind, gibt es ebenfalls ein Problem mit der Ausführungsreihenfolge. Da das Prioritätsereignis „Application_Error“ 930ac17b94b9e98609d20e97126e0d94 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 973089228f40b3860dd3265859331410Konfigurationselement 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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Vorheriger Artikel:Welche Sprache ist ASP?Nächster Artikel:Welche Sprache ist ASP?