2011-05-05 2 views
1

내 매우 큰 웹 페이지 (50 페이지, 20.000 라인 코드)에서 예기치 않은 오류가 발생할 수있는 상황이 거의 없습니다. 올바르게 캐치하지 않습니다.Asp.net : 예기치 않은 오류 처리 - 메일을 보내고 error.aspx로 리디렉션 하시겠습니까?

내 안전 : 전자 메일 (SMTP 클래스가 이미 있으므로 메서드를 호출해야 함)을 보내고 실행되지 않은 모든 오류를 특정 사이트로 리디렉션 할 수 있습니까? (예 : Error.aspx)

답변

1

가함으로써 Application_Error 방법을 생성하고이 오류를 처리 Global.asax에. 당신은 Server.GetLastError()를 사용하여 마지막 예외를 얻을 수 있습니다.

1

예 처리되지 않은 오류를 포착하는 사용자 정의 오류 페이지를 사용할 수 있습니다. 이 페이지에 코드를 작성하여 예외 세부 사항을 포함하는 오류를 보낼 수 있습니다. 당신에

Custom Error page

1

나는 더 좋은 방법은 당신 자신의 예외 모듈과 핸들러를 작성하는 것이라고 믿습니다. 이런 식으로 뭔가.

public sealed class ErrorCapture : IHttpModule 
{ 

    #region IHttpModule Members 

    public void Dispose() 
    { 
     //nothing here 
    } 

    public void Init(HttpApplication context) 
    { 
     context.Error += new EventHandler(context_Error); 
    } 

    void context_Error(object sender, EventArgs e) 
    { 
     // Do your implementation like send mail 
     // Get Required details and use response.write for 
     // a good error msg display 
     HttpApplication Application = (HttpApplication)sender; 
     HttpServerUtility Server = Application.Server; 
     HttpResponse Response = Application.Response; 

     Exception error = Server.GetLastError(); 
     if (error.GetType().Equals(typeof(HttpUnhandledException))) 
      error = error.InnerException; 

     //your stuff 

     Server.ClearError();//Do this 
    } 

    #endregion 
} 
관련 문제