다음을 통해 공유


예외 처리(디버깅)

예외는 프로그램을 실행하는 동안 발생하는 비정상적인 상황입니다. 예외는 보통 디버깅해야 할 문제가 있음을 나타냅니다. 옵션 대화 상자, 디버깅, 일반 대화 상자에서 이 기능을 해제하지 않은 한 예외가 발생하면 디버거의 출력 창에 예외 메시지가 표시됩니다.

디버거는 예외가 발생하면 실행을 중단하거나 중단하지 않을 수 있습니다.

  • ASP.NET 이외의 예외가 발생하고 이 예외가 처리되지 않으면 디버거는 실행을 항상 중단합니다.

  • 예외가 throw되면 처리기를 호출하기 전에 실행을 즉시 중단하도록 디버거에 지시할 수 있습니다. 자세한 내용은 방법: 예외가 throw되었을 때 중단을 참조하십시오.

  • 내 코드만을 사용하여 디버깅하는 경우 세 번째 옵션을 사용할 수도 있습니다. 사용자 코드("내 코드")에서 처리기로 처리되지 않은 임의의 예외에서 중단하도록 디버거에 지시할 수 있습니다. 자세한 내용은 방법: 사용자가 처리하지 않은 예외에서 중단을 참조하십시오.

  • ASP.NET에는 예외를 처리하여 브라우저 사용자에게 오류 페이지를 표시하는 최상위 예외 처리기가 있습니다. 내 코드만 옵션이 켜져 있지 않으면 이 최상위 예외 처리기에서는 처리되지 않은 예외를 처리하기 위해 프로그램을 중단하고 디버거를 실행할 수 없습니다. 따라서 ASP.NET 디버깅의 경우 내 코드만 옵션을 활성화해야 합니다.

    예외가 발생해도 전혀 처리되지 않으면 디버거가 항상 실행을 중단한다는 점을 기억해야 합니다. 사용자가 처리하지 않도록 설정해도 이러한 동작은 변경되지 않습니다.

Visual Studio 디버거는 다음과 같은 예외 범주를 인식합니다.

  • C++ Exceptions

  • Common Language Runtime Exceptions

  • Managed Debugging Assistants

  • Native Run-Time Checks

  • Win32 Exceptions

  • Javascript 런타임 예외

  • GPU 메모리 액세스 예외

대부분의 예외에는 예외가 발생하면 응답하도록 설계된 처리기가 있습니다. 프로그램에서는 이 처리기를 사용하여 비정상적인 상황에서 복구할 수 있습니다. Native Run-Time Checks에는 처리기가 없습니다.

Visual Basic 응용 프로그램의 경우 디버거는 모든 오류를 예외로 표시합니다. 이는 On Error 스타일의 오류 처리기를 사용하는 경우에도 마찬가지입니다.

Visual Basic 및 C#에서는 예외가 발생했을 때 더 많은 정보를 제공하는 새로운 예외 도우미가 디버거에 추가되었습니다.

다음 항목에서는 예외 처리에 대해 설명합니다.

참고 항목

개념

디버거 보안

기타 리소스

예외 도우미

디버거 로드맵

<PAVEOVER> 방법: 내 코드만 한 단계씩 실행