ASP.NET MVC でのカスタム エラー処理: Global.asax の Application_Error イベント
ASP.NET MVC アプリケーションでは、Global.asax の Application_Error イベントは、ハンドルされない例外を処理し、カスタム エラー ページを提供するために重要です。
エラー コントローラーにデータを渡す
Application_Error イベントの現在のコードは、HTTP ステータス コードを決定し、Error コントローラーに渡す RouteData オブジェクトを設定します。ただし、このコードには、例外の詳細をコントローラーに渡す方法が提供されていません。
堅牢なアプローチは、クエリ文字列パラメーターを使用して例外情報を送信することです。変更された 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("SomeView", message); }</code>
メモ
このアプローチでは柔軟な例外処理が可能ですが、次の点を考慮してください。
以上がASP.NET MVC で例外の詳細を使用したカスタム エラー処理を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。