Maison >développement back-end >Tutoriel C#.Net >Quel est le mécanisme de gestion des erreurs de .net

Quel est le mécanisme de gestion des erreurs de .net

藏色散人
藏色散人avant
2019-04-26 13:35:517075parcourir

Le mécanisme de gestion des erreurs de .NET est le suivant : 1. Événement [Page_Error] ; 2. Attribut ErrorPage ; 3. Événement [Application_Error] ; 4. Élément de configuration [930ac17b94b9e98609d20e97126e0d94]. Les quatre mécanismes de traitement ci-dessus sont principalement utilisés pour la gestion des exceptions et la gestion des erreurs au niveau de la page.

Quel est le mécanisme de gestion des erreurs de .net

.NET fournit quatre mécanismes de gestion des erreurs :

1.Événement Page_Error

L'événement Page_Error fournit un moyen de capturer les erreurs qui se produisent au niveau de la page. Vous pouvez simplement afficher un message d'erreur (comme indiqué dans l'exemple de code ci-dessous), enregistrer un événement ou effectuer une autre action.

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

Remarque : Cet exemple affiche un message d'erreur détaillé dans le navigateur et est fourni à titre d'illustration uniquement. Soyez prudent lorsque vous affichez des informations détaillées aux utilisateurs finaux de votre application. Il est plus approprié d'afficher un message à l'utilisateur indiquant qu'une erreur s'est produite, puis de consigner les détails spécifiques de l'erreur.

2. Attribut ErrorPage

Vous pouvez définir l'attribut ErrorPage presque à tout moment sur la page pour déterminer vers quelle page il sera redirigé lorsqu'une erreur se produit. Pour que l'attribut ErrorPage fonctionne, l'attribut mode dans l'élément de configuration 930ac17b94b9e98609d20e97126e0d94 doit être défini sur "On".

this.ErrorPage = "~/ErrorHandling/PageError.html";

Si Page_Error et ErrorPage existent, quel est l'ordre d'exécution de la page lorsqu'une exception est levée ? La page exécutera d'abord la fonction de traitement d'événement Page_Error. Si la fonction Server.ClearError() est appelée dans l'événement Page_Error() pour effacer les informations d'exception, elle ne passera pas à la page spécifiée par l'attribut ErrorPage ; () n'est pas appelé, les informations d'exception continueront à être lancées vers le haut et la page passera à la page spécifiée par ErrorPage. Cela prouve également l'ordre de priorité : événement Page_Error > attribut ErrorPage.

3.Événement Application_Error

Semblable à l'événement Page_Error, vous pouvez utiliser l'événement Application_Error pour capturer les erreurs qui se produisent dans l'application. Étant donné que les événements se produisent à l'échelle de l'application, vous pouvez consigner les informations sur les erreurs d'application ou gérer d'autres erreurs au niveau de l'application qui peuvent survenir. Ajoutez le code suivant au fichier Global.asax et tout ira bien.

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 Élément de configuration

La section de configuration 930ac17b94b9e98609d20e97126e0d94 page d'erreur defaultRedirect ou spécifiez une page spécifique en fonction du code d'erreur HTTP généré. Cette page personnalisée s'affiche si une erreur qui n'a été détectée à aucun niveau précédent de l'application se produit.

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

De même, si Application_Error et 57eeb7803b8d23e3b64c46876f20d8de existent en même temps, il y a aussi un problème d'ordre d'exécution. Étant donné que l'élément de configuration prioritaire Application_Error> 930ac17b94b9e98609d20e97126e0d94 ; section de configuration Le defaultRedirect ne fonctionne pas car l'exception a été effacée ; si la fonction Server.ClearError() n'est pas appelée dans l'événement Application_Error, la page d'erreur sera déplacée vers la page URL spécifiée par defaultRedict pour afficher un message d'erreur convivial. à l'utilisateur.

En analysant les quatre mécanismes de gestion des erreurs ci-dessus fournis par .NET, nous pouvons les classer sous différentes perspectives pour faciliter notre compréhension et notre utilisation.

1. Classé fonctionnellement : utilisé pour la gestion des exceptions (Gestion des exceptions) sont l'événement Page_Error et l'événement Application_Error ; pour la redirection de la page d'erreur de l'utilisateur (Redirection de l'utilisateur vers une page d'erreur) sont l'attribut ErrorPage et cb6ac9cb15c068bbd743709f216bf89eÉlément de configuration.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer
Article précédent:Quelle langue est asp ?Article suivant:Quelle langue est asp ?