> 백엔드 개발 > C++ > ASP.NET MVC에서 예외 세부 정보를 사용하여 사용자 지정 오류 처리를 어떻게 구현할 수 있습니까?

ASP.NET MVC에서 예외 세부 정보를 사용하여 사용자 지정 오류 처리를 어떻게 구현할 수 있습니까?

Linda Hamilton
풀어 주다: 2025-01-14 10:17:46
원래의
788명이 탐색했습니다.

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

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 작업으로 리디렉션하면 요청에 대한 세션 개체가 생성되며, 이는 사용량이 많은 시스템의 성능에 영향을 미칠 수 있습니다.
  • 오류 처리가 강력하게 이루어지도록 하고 중요한 정보가 승인되지 않은 사용자에게 표시되는 것을 허용하지 마십시오.

위 내용은 ASP.NET MVC에서 예외 세부 정보를 사용하여 사용자 지정 오류 처리를 어떻게 구현할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿