Question

Les questions disent tout, prenons cet exemple de code:

<ul id="css-id">
    <li>
    <something:CustomControl ID="SomeThingElse" runat="server" />
    <something:OtherCustomControl runat="server" />
    </li>
</ul>

Maintenant, si une erreur est renvoyée quelque part à l'intérieur de ces contrôleurs (situés dans une page maître), ils vont détruire tout le site, comment pourrait-on intercepter ces exceptions?

Était-ce utile?

La solution

Vous pouvez intercepter toutes les exceptions non gérées ailleurs dans la page / classe Global.asax. Regardez:

protected void Application_Error(Object sender, EventArgs e)

méthode.

Autres conseils

Malheureusement, une exception non gérée provoquera toujours une erreur sur votre site. Vous pouvez toutefois éviter cela de plusieurs manières.

  • Utilisez la section de votre web.config pour afficher un message convivial
  • Dans votre Global.asax - ou un gestionnaire personnalisé - attrapez votre exception non gérée et réagissez en conséquence - comme ceci

meilleure solution

  • Assurez-vous que les contrôles ne génèrent pas d'exceptions non gérées!

Ajoutez un fichier global.asax et implémentez le gestionnaire Application_Error. Utilisez la fonction Server.GetLastError () pour obtenir un descripteur sur l’exception levée.

Utilisation de la méthode global.asax Application_Error, comme décrit dans Création de pages de rapport d’erreurs personnalisées en ASP. NET en utilisant Visual C # .NET .

Une autre approche consisterait à utiliser un module HTTP ; cela vous donne plus de flexibilité (vous pouvez par exemple gérer les erreurs de plusieurs applications).

Voulez-vous intercepter l'exception et la gérer?

Ou voulez-vous empêcher l’écran jaune de la mort? Si vous essayez d'empêcher l'écran jaune de la mort, envisagez de gérer l'événement Error sur HttpApplication (en d'autres termes, dans votre fichier Global.asax).

Voir la page MSDN suivante pour plus de détails: http://msdn.microsoft.com/fr us / library / system.web.httpapplication.error.aspx

Plus précisément ce paragraphe:

  

Il est possible d'accéder à l'exception qui déclenche l'événement Error par un appel à la méthode GetLastError. Si votre application génère une sortie d'erreur personnalisée, supprimez le message d'erreur par défaut généré par ASP.NET par un appel à la méthode ClearError.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top