Heim >Backend-Entwicklung >C++ >Wie implementiert man eine benutzerdefinierte Fehlerbehandlung in ASP.NET MVC mithilfe von Application_Error?

Wie implementiert man eine benutzerdefinierte Fehlerbehandlung in ASP.NET MVC mithilfe von Application_Error?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-14 10:02:47277Durchsuche

How to Implement Custom Error Handling in ASP.NET MVC using Application_Error?

Verwenden Sie das Application_Error-Ereignis von Global.asax, um eine benutzerdefinierte Fehlerbehandlung in ASP.NET MVC zu implementieren

Das Application_Error-Ereignis in der Datei Global.asax in ASP.NET MVC ermöglicht Entwicklern die Behandlung nicht behandelter Ausnahmen und Fehler in der Anwendung. Eine gängige Praxis besteht darin, Benutzer basierend auf dem HTTP-Statuscode des Fehlers auf eine bestimmte Fehlerseite umzuleiten.

Dazu können Sie den Application_Error-Ereignishandler wie folgt ändern:

<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>

In diesem verbesserten Code leiten wir direkt zum Controller/zur Aktion weiter und übergeben die Fehlerdetails als Abfragezeichenfolgenparameter, anstatt eine neue Route für den Fehlercontroller zu erstellen. Der Fehlercontroller empfängt dann die Nachricht und zeigt sie in der in der Aktionsmethode angegebenen Ansicht an.

<code class="language-csharp">// GET: /Error/HttpError404
public ActionResult HttpError404(string message)
{
    return View("SomeErrorView", message);
}</code>

Dieser Ansatz vereinfacht die Fehlerbehandlung und vermeidet die Notwendigkeit einer zusätzlichen Weiterleitung. Es gibt jedoch Kompromisse, die es zu beachten gilt. Beispielsweise kann es zu Leistungsproblemen kommen, wenn während der Fehlerbehandlung eine große Anzahl von Schleifen oder Sitzungserstellungen erfolgt.

Das obige ist der detaillierte Inhalt vonWie implementiert man eine benutzerdefinierte Fehlerbehandlung in ASP.NET MVC mithilfe von Application_Error?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn