Maison > développement back-end > C++ > Comment puis-je implémenter une gestion personnalisée des erreurs avec des détails d'exception dans ASP.NET MVC ?

Comment puis-je implémenter une gestion personnalisée des erreurs avec des détails d'exception dans ASP.NET MVC ?

Linda Hamilton
Libérer: 2025-01-14 10:17:46
original
788 Les gens l'ont consulté

How Can I Implement Custom Error Handling with Exception Details in ASP.NET MVC?

Gestion personnalisée des erreurs dans ASP.NET MVC : événement Application_Error dans Global.asax

Dans les applications ASP.NET MVC, l'événement Application_Error dans Global.asax est crucial pour gérer les exceptions non gérées et fournir des pages d'erreur personnalisées.

Transmettre les données au contrôleur d'erreurs

Le code actuel dans l'événement Application_Error détermine le code d'état HTTP et définit l'objet RouteData à transmettre au contrôleur d'erreur. Cependant, le code ne permet pas de transmettre les détails de l'exception au contrôleur.

Une approche robuste consiste à utiliser des paramètres de chaîne de requête pour transmettre des informations sur les exceptions. Le code Application_Error modifié est le suivant :

<code class="language-csharp">protected void Application_Error(object sender, EventArgs e)
{
    Exception exception = Server.GetLastError();
    Response.Clear();

    HttpException httpException = exception as HttpException;

    if (httpException != null)
    {
        string action;

        switch (httpException.GetHttpCode())
        {
            case 404:
                // 页面未找到
                action = "HttpError404";
                break;
            case 500:
                // 服务器错误
                action = "HttpError500";
                break;
            default:
                action = "General";
                break;
        }

        // 清除服务器上的错误
        Server.ClearError();

        Response.Redirect(String.Format("~/Error/{0}/?message={1}", action, exception.Message));
    }
}</code>
Copier après la connexion

Contrôleur d'erreurs

Le contrôleur d'erreurs recevra le message d'exception en tant que paramètre de chaîne de requête :

<code class="language-csharp">// GET: /Error/HttpError404
public ActionResult HttpError404(string message)
{
    return View("SomeView", message);
}</code>
Copier après la connexion

Remarques

Bien que cette approche permette une gestion flexible des exceptions, veuillez prendre en compte les points suivants :

  • Évitez les boucles infinies dans la gestion des erreurs.
  • La redirection vers une action ASP.NET MVC crée un objet de session pour la requête, ce qui peut avoir un impact sur les performances sur les systèmes à forte utilisation.
  • Assurez-vous que la gestion des erreurs est robuste et ne permettez pas que des informations sensibles soient affichées à des utilisateurs non autorisés.

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal