Share via


ASP.NET 예외 디버그

예외 디버깅은 강력한 ASP.NET 애플리케이션을 개발하는 데 중요한 요소입니다. 예외를 디버그하는 방법에 관한 일반적인 내용은 디버거를 사용한 예외 관리를 참조하세요.

처리되지 않은 ASP.NET 예외를 디버깅하려면 디버거에서 실행을 중지해야 합니다. ASP.NET 런타임에는 최상위 예외 처리기가 있습니다. 따라서 디버거는 처리되지 않은 예외에서 기본적으로 중단되지 않습니다. 예외가 throw될 때 디버거에서 실행을 중단하도록 지정하려면 예외 대화 상자에서 특정 예외에 대해 throw되면 중단 설정을 선택해야 합니다.

내 코드만 옵션을 설정한 경우 throw되면 중단을 사용하면 .NET 메서드 또는 다른 시스템 코드에서 예외가 throw되는 즉시 디버거에서 실행을 중단하지 않습니다. 이러한 경우 디버거의 실행은 비시스템 코드를 적중해야 중단됩니다. 그러므로 예외가 발생할 때 시스템 코드를 단계별로 수행할 필요가 없습니다.

내 코드만 옵션을 사용할 경우 더 유용한 다른 옵션인 사용자 코드에서 처리되지 않은 경우 계속도 사용할 수 있습니다. 예외에 대해 이 설정을 비활성화하면 디버거는 사용자 코드에서 예외를 catch하여 처리하지 않는 경우에 한해서만 사용자 코드에서 실행을 중단합니다. 이렇게 설정할 경우 최상위 ASP.NET 예외 처리기가 사용자가 작성하지 않은 코드에 있기 때문에 해당 처리기의 결과가 무시됩니다.

내 코드만 옵션을 사용하여 ASP.NET 예외 디버깅을 설정하려면

  1. 디버그 메뉴에서 Windows>예외 설정을 클릭합니다.

    예외 대화 상자가 표시됩니다.

  2. 공용 언어 런타임 예외에서 예외가 throw되었을 때 중단하려는 예외에 대한 행을 선택합니다.

  3. 사용자 코드에서 처리되지 않은 경우 계속을 사용하지 않도록 설정하려면 마우스 오른쪽 단추로 행을 클릭하고 이미 선택된 경우 옵션을 선택 취소합니다.

    사용자가 처리하지 않음 설정을 사용하려면 내 코드만을 사용하도록 설정해야 합니다.

최상의 방법으로 ASP.NET 예외 처리를 수행하려면

  • 예측 가능하며 처리 방법을 알고 있는 예외를 throw할 수 있는 코드의 바깥쪽에 try ... catch 블록을 배치합니다. 예를 들어 애플리케이션에서 XML Web services를 호출하거나 SQL Server를 직접 호출할 경우에는 다양한 예외가 발생할 수 있으므로 해당 코드는 try ... catch 블록에 있어야 합니다.