다음을 통해 공유


방법: 페이지 수준 오류 처리

업데이트: 2007년 11월

오류는 가능하면 코드 내의 Try/Catch 블록에서 처리하는 것이 좋습니다. 문제가 발생한 지점에서 이를 바로잡는 편이 더 쉽기 때문입니다. 사용자가 문제 해결에 도움을 줄 수 있으면 사용자가 처리해야 할 일이 무엇인지 맥락을 이해할 수 있도록 페이지를 동일한 위치로 되돌려야 합니다.

페이지 수준 처리기는 페이지를 반환하지만 컨트롤의 인스턴스가 작성되지 않으므로 페이지에 더 이상 어떠한 정보도 제공되지 않습니다. 사용자에게 정보를 제공하려면 페이지에 이를 별도로 기록해야 합니다.

대부분의 경우 처리되지 않은 오류를 기록하거나 유용한 정보가 표시되는 페이지로 사용자를 디렉션하는 데 페이지 수준 오류 처리기를 사용합니다.

이 코드 예제에서는 ASP.NET 웹 페이지의 Error 이벤트에 대한 처리기를 보여 줍니다. 이 처리기는 페이지의 Try/Catch 블록 내에서 아직 처리되지 않은 모든 예외를 catch합니다.

오류를 처리한 후에는 Server 개체(HttpServerUtility 클래스)의 ClearError 메서드를 호출하여 오류 정보를 지워야 합니다.

예제

이 처리기는 특정 유형의 예외를 필터링합니다. ArgumentOutOfRangeException 예외에 대해 이 처리기는 페이지에 관련 텍스트를 기록하고, 페이지로 되돌아가는 링크를 제공하고, 오류를 기록하고, 해당 사실을 시스템 관리자에게 알립니다. InvalidOperationException 예외에 대해 이 처리기는 해당 예외를 일반 오류 페이지로 단순히 전송만 합니다. 다른 모든 유형의 예외에 대해 이 처리기는 아무런 작업도 수행하지 않으므로 Web.config 파일에 지정된 일반 페이지로 사이트를 자동 리디렉션할 수 있습니다. 응용 프로그램에 중요한 예외를 필터링하는 코드를 직접 작성할 수도 있습니다.

다음 예제는 오류 처리기의 전체 예제에 나와 있는 전체 코드 예제의 일부입니다.

보안

<customErrors> 요소를 사용하여 자세한 오류 메시지를 로컬 사용자에게만 표시할 수 있습니다.

악의적인 사용자가 응용 프로그램을 훼손하는 데 도움이 될만한 오류 정보는 표시하지 마십시오. 자세한 내용은 방법: 안전한 오류 메시지 표시를 참조하십시오.

참고 항목

작업

방법: 응용 프로그램 수준 오류 처리

개념

오류 처리기의 전체 예제