예외 디버깅은 강력한 ASP.NET 애플리케이션을 개발하는 데 중요한 부분입니다. 예외를 디버그하는 방법에 대한 일반적인 정보는 디버거를 사용하여 예외 관리에 있습니다.
처리되지 않은 ASP.NET 예외를 디버그하려면 디버거가 해당 예외에 대해 중지되었는지 확인해야 합니다. ASP.NET 런타임에는 최상위 예외 처리기가 있습니다. 따라서 디버거는 기본적으로 처리되지 않은 예외에서 중단되지 않습니다. 예외가 throw될 때 디버거에 침입하려면 예외 대화 상자에서 특정 예외에 대해 Throw될 때 중단 설정을 선택해야 합니다.
내 코드만 사용하도록 설정한 경우 Throw될 때 중단 하면 .NET 메서드 또는 다른 시스템 코드에서 예외가 throw되는 경우 디버거가 즉시 중단되지 않습니다. 대신 디버거가 비시스템 코드에 도달할 때까지 실행이 계속됩니다. 그러면 중단됩니다. 따라서 예외가 발생할 때 시스템 코드를 단계별로 실행할 필요가 없습니다.
Just My Code에서 유용할 수 있는 다른 옵션은 사용자 코드에서 처리되지 않을 때 계속 실행하기입니다. 예외에 대해 이 설정을 사용하지 않도록 설정하면 디버거가 사용자 코드에서 실행을 중단하지만 예외가 사용자 코드에 의해 catch되고 처리되지 않는 경우에만 중단됩니다. 이 설정은 해당 처리기가 사용자 코드가 아닌 코드에 있으므로 최상위 ASP.NET 예외 처리기의 효과를 부정합니다.
내 코드만 사용하여 ASP.NET 예외의 디버깅을 사용하도록 설정하려면
디버그 메뉴에서 Windows>예외 설정을 클릭합니다.
예외 대화 상자가 나타납니다.
공용 언어 런타임 예외에서 예외가 발생했을 때 중단할 예외의 행을 선택합니다.
사용자 코드에서 처리되지 않은 경우 계속을 사용하지 않도록 설정하려면 행을 마우스 오른쪽 단추로 클릭하고 이미 선택된 경우 옵션을 선택 취소합니다.
사용자 코드 설정에서 처리되지 않은 경우 계속을 사용하려면 내 코드만 사용하도록 설정해야 합니다.
사용자 코드에서 처리되지 않은 경우 계속을 사용하도록 설정하려면 행을 마우스 오른쪽 단추로 클릭하고 계속할 옵션을 선택한 다음 예외에 대한 행 선택을 취소합니다.
ASP.NET 예외 처리에 모범 사례를 사용하려면
- 예측하고 처리 방법을 알 수 있는 예외를 throw할 수 있는 코드 주위에 블록을 배치
try ... catch합니다. 예를 들어 애플리케이션이 XML 웹 서비스나 SQL Server에 직접 호출하는 경우, 그 코드는 try ... catch 블록 안에 있어야 합니다. 이는 발생할 수 있는 많은 예외 상황에 대비하기 위함입니다.