.aspx 및 .ascx 페이지 내에서 예외 잡기
-
02-07-2019 - |
문제
질문에 모든 것이 나와 있습니다. 다음 예제 코드를 살펴보세요.
<ul id="css-id">
<li>
<something:CustomControl ID="SomeThingElse" runat="server" />
<something:OtherCustomControl runat="server" />
</li>
</ul>
이제 이러한 컨트롤(마스터 페이지에 있음) 내부 어딘가에서 오류가 발생하면 전체 사이트가 중단됩니다. 이러한 예외를 어떻게 잡을 수 있습니까?
해결책
Global.asax Page / Class에서 ELSWHERE를 처리하지 않은 모든 예외를 포착 할 수 있습니다. 보다:
protected void Application_Error(Object sender, EventArgs e)
방법.
다른 팁
불행히도 처리되지 않은 예외는 항상 귀하의 사이트에 오류가 발생합니다. 그래도 몇 가지 방법을 방해 할 수 있습니다.
- Web.config의 섹션을 사용하여 사용자 친화적 인 메시지를 표시하십시오.
- Global.asax에서 또는 사용자 정의 핸들러 - 처리되지 않은 예외를 잡고 그에 따라 반응합니다. 이와 같이
최상의 솔루션
- 컨트롤이 처리되지 않은 예외를 던지지 않도록하십시오!
Global.asax en application_error 핸들러를 구현하십시오. Server.getLasterror () 함수를 사용하여 제외 된 예외를 처리하십시오.
다음에 설명된 대로 global.asax Application_Error 메서드 사용 Visual C# .NET을 사용하여 ASP.NET에서 사용자 지정 오류 보고 페이지를 만드는 방법.
대안적인 접근 방식은 다음을 사용하는 것입니다. HTTP 모듈;이렇게 하면 유연성이 더 높아집니다(예를 들어 여러 애플리케이션의 오류를 처리할 수 있음).
예외를 잡고 처리하고 싶습니까?
아니면 노란색 사망 스크린을 막고 싶습니까? 노란색 사망 스크린을 막으려 고한다면 처리를보십시오. Error
이벤트 HttpApplication
(즉, Global.asax에서).
자세한 내용은 다음 MSDN 페이지를 참조하십시오.http://msdn.microsoft.com/en-us/library/system.web.httpapplication.error.aspx
구체적 으로이 단락 :
오류 이벤트를 제기하는 예외는 getLasterror 메소드에 대한 호출로 액세스 할 수 있습니다. 응용 프로그램에서 사용자 정의 오류 출력을 생성하면 ClearerRor 메소드에 대한 호출로 ASP.NET에서 생성 한 기본 오류 메시지를 억제하십시오.