ASP.NET MVC의 사용자 정의 오류 처리: Global.asax의 Application_Error 이벤트
ASP.NET MVC 애플리케이션에서 Global.asax의 Application_Error 이벤트는 처리되지 않은 예외를 처리하고 사용자 정의 오류 페이지를 제공하는 데 중요합니다.
오류 컨트롤러에 데이터 전달
Application_Error 이벤트의 현재 코드는 HTTP 상태 코드를 확인하고 RouteData 객체가 Error 컨트롤러에 전달되도록 설정합니다. 그러나 코드는 예외 세부 정보를 컨트롤러에 전달하는 방법을 제공하지 않습니다.
강력한 접근 방식은 쿼리 문자열 매개변수를 사용하여 예외 정보를 전송하는 것입니다. 수정된 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!