다음을 통해 공유


프로그램에서 수행할 수 없는 작업: 런타임 오류 찾기 및 제거

업데이트: 2007년 11월

이 단원에서는 프로그램을 디버깅하고 런타임 오류를 수정하는 방법을 배웁니다.

이전 단원에서 학습했듯이 런타임 오류는 프로그램이 수행할 수 없는 작업을 시도하는 경우 발생합니다. 런타임 오류가 발생하면 프로그램이 중지되고 오류 메시지가 표시됩니다. 따라서 프로그램을 계속 실행하려면 먼저 오류를 디버깅하여 수정해야 합니다.

런타임 오류 찾기 및 수정

런타임 오류는 대부분 변수를 사용하기 전에 깜박 잊고 값을 할당하지 않은 것처럼 코드에서 저지른 실수 때문에 발생합니다. 프로그램을 실행하는 도중 실수가 발견되면 프로그램이 중지되고 코드 편집기 창에 예외 도우미 대화 상자가 표시됩니다. 이러한 상황이 발생하면 프로그램은 중단 모드로 들어가 디버깅을 수행하게 됩니다.

예외 도우미 대화 상자에는 오류에 대한 설명과 함께 원인을 알려 주는 문제 해결 팁이 포함되어 있습니다. 문제 해결 팁을 클릭하면 도움말 항목이 표시되어 자세한 내용을 확인할 수 있습니다.

프로그램을 계속 실행하려면 오류를 수정해야 하지만 이를 위해서는 코드를 검사하여 원인을 찾아야 합니다. 예를 들어, 중단 모드에 있을 때 변수에 잘못된 값이 포함되어 오류가 발생했다고 생각되면 IntelliSense를 사용하여 해당 변수 값을 확인할 수 있습니다. 코드 편집기에서 변수 위에 마우스를 놓아 두면 도구 설명에 해당 변수 값이 표시됩니다. 값이 예상과 다르면 앞의 코드에서 값을 설정한 위치를 확인하여 해당 코드를 수정하고 계속 실행합니다.

실습

변수 값을 검사하려면

  1. 파일 메뉴에서 새 프로젝트를 선택합니다.

  2. 새 프로젝트 대화 상자의 템플릿 창에서 Windows 응용 프로그램을 클릭합니다.

  3. 이름 상자에 RunTimeErrors를 입력한 다음 확인을 클릭합니다.

    새 Windows Forms 프로젝트가 열립니다.

  4. 폼을 두 번 클릭하여 코드 편집기를 엽니다.

  5. Form_Load 이벤트 처리기에 다음 코드를 추가합니다.

    Dim miles As Integer = 0
    Dim hours As Integer = 0
    Dim speed As Integer = 0
    
    miles = 55
    speed = miles / hours
    MsgBox(CStr(speed) & " miles per hour")
    
  6. F5 키를 눌러 프로그램을 실행합니다. "OverflowException이(가) 처리되지 않았습니다."라는 메시지와 함께 예외 도우미 대화 상자가 표시됩니다.

    대화 상자에서 코드 파일까지 점선이 그려져서 오류가 발생한 코드 줄을 보여 줍니다.

    예외 도우미의 첫 번째 문제 해결 팁에 0으로 나누지 않았는지 확인하라는 메시지가 표시됩니다.

  7. miles 변수 위로 마우스를 이동하여 몇 초 동안 그대로 둡니다. 도구 설명에 "miles 55"라고 표시됩니다.

  8. 이제 마우스를 hours 변수 위로 이동하면 도구 설명에 "hours 0"이 표시됩니다.

    0으로 나눌 수 없는데 hours 값이 0이므로 오류의 원인은 hours 값을 업데이트하지 않았기 때문임을 알 수 있습니다.

  9. 다음 코드 줄을 miles = 55 줄 위에 추가합니다.

    hours = 2
    
  10. 코드의 왼쪽 여백에 있는 노란색 화살표를 클릭하여 hours = 2 줄까지 끌어 옵니다.

    이렇게 하면 프로그램은 오류가 포함된 줄이 아닌 이 줄부터 실행됩니다. 오류 수정이 인식되도록 방금 추가한 새 코드 줄을 실행하기 위해서입니다.

  11. F5 키를 눌러 프로그램을 실행합니다. "28 miles per hour"라고 표시된 대화 상자가 나타납니다.

다음 단계

이 단원에서는 런타임 오류를 찾아 수정하는 방법을 배웠습니다. 다음 단원에서는 논리 오류라는 세 번째 유형의 프로그래밍 오류에 대해 배웁니다. 자세히 보기: 직접 실행 창에서 코드 테스트에서 고급 디버깅 기법에 대해 좀 더 자세히 살펴본 다음 논리 오류 단원으로 계속 진행할 수도 있습니다.

다음 단원: 예상과 다른 동작: 논리 오류 찾기

참고 항목

작업

컴파일러 오류 찾기 및 제거

버그 확인: 세 가지 프로그래밍 오류

오류 찾기: Visual Basic 디버깅 소개