ホームページ > バックエンド開発 > C++ > Application_Error を使用して ASP.NET MVC にカスタム エラー処理を実装する方法

Application_Error を使用して ASP.NET MVC にカスタム エラー処理を実装する方法

Mary-Kate Olsen
リリース: 2025-01-14 10:02:47
オリジナル
285 人が閲覧しました

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

Global.asax の Application_Error イベントを使用して、ASP.NET MVC でカスタム エラー処理を実装します

ASP.NET MVC の Global.asax ファイルの Application_Error イベントを使用すると、開発者はアプリケーションで未処理の例外やエラーを処理できます。一般的な方法は、エラー HTTP ステータス コードに基づいてユーザーを特定のエラー ページにリダイレクトすることです。

これを行うには、Application_Error イベント ハンドラーを次のように変更します。

<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>
ログイン後にコピー

この改良されたコードでは、エラー コントローラーの新しいルートを作成する代わりに、コントローラー/アクションに直接リダイレクトし、エラーの詳細をクエリ文字列パラメーターとして渡します。エラー コントローラーはメッセージを受信し、アクション メソッドで指定されたビューを使用してメッセージを表示します。

<code class="language-csharp">// GET: /Error/HttpError404
public ActionResult HttpError404(string message)
{
    return View("SomeErrorView", message);
}</code>
ログイン後にコピー

このアプローチにより、エラー処理が簡素化され、追加のルーティングが不要になります。ただし、注意すべきトレードオフもあります。たとえば、エラー処理中に多数のループやセッションが作成されると、パフォーマンスの問題が発生する可能性があります。

以上がApplication_Error を使用して ASP.NET MVC にカスタム エラー処理を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート