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

藏色散人
Libérer: 2020-09-15 14:57:32
avant
6967 Les gens l'ont consulté

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 []. 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(); //同样要注意这句代码的使用
  }
Copier après la connexion

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 doit être défini sur "On".

this.ErrorPage = "~/ErrorHandling/PageError.html";
Copier après la connexion

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(); 
     }
Copier après la connexion

4. Élément de configuration

La section de configuration 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>
Copier après la connexion

De même, si Application_Error et 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> ; 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

2. Classification dans le cadre de la gestion des erreurs : l'événement Page_Error et l'attribut ErrorPage sont utilisés pour la gestion des erreurs au niveau de la page ; l'événement Application_Error et < sont utilisés pour la gestion des erreurs au niveau de l'application ;customErrors>É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!

Étiquettes associées:
source:cnblogs.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!