다음을 통해 공유


문제 해결 방법: 오류 처리

업데이트: 2007년 11월

이 단원에서는 프로그램의 기본 오류 처리 코드를 만드는 방법을 배웁니다.

매우 훌륭하게 디자인된 프로그램이라도 오류가 발생할 수 있습니다. 일부 오류는 코드의 결함이며 찾아서 수정할 수 있지만 프로그램의 자연스러운 실행 결과로 나타나는 오류도 있습니다. 예를 들어 프로그램이 이미 사용 중인 파일을 열려고 할 수 있습니다. 이러한 경우 오류를 예측할 수는 있지만 방지는 불가능합니다. 프로그래머는 오류를 예측하고 프로그램 자체적으로 오류를 처리할 수 있도록 해야 합니다.

런타임 오류

프로그램이 실행 중일 때 발생하는 오류를 런타임 오류라고 합니다. 런타임 오류는 프로그램이 예상되지 않은 동작을 수행하려고 할 때 발생합니다. 예를 들어 프로그램이 숫자 값에 숫자가 아닌 문자열을 쓰는 등 잘못된 작업을 수행하려고 하면 런타임 오류가 발생합니다.

런타임 오류가 발생하면 프로그램은 프로그램 내에서 오류를 처리할 코드를 찾아 오류를 처리하는 예외를 발생시킵니다. 이러한 코드가 없으면 프로그램이 중지되어 다시 시작해야 합니다. 이러한 작업으로 인해 데이터가 손실될 수 있으므로 오류 발생이 예상되면 오류 처리 코드를 만드는 것이 좋습니다.

Try...Catch...Finally 블록

Try...Catch...Finally 블록을 사용하여 코드의 런타임 오류를 처리할 수 있습니다. 코드 세그먼트를 Try할 수 있습니다. 해당 코드에 의해 예외가 발생하면 Catch 블록으로 건너뛴 후 Catch 블록의 코드가 실행됩니다. 해당 코드가 완료되면 Finally 블록의 코드가 실행됩니다. 전체 Try...Catch...Finally 블록은 End Try 문에 의해 닫힙니다. 다음 예제에서는 각 블록이 사용되는 방법을 보여 줍니다.

Try
  ' Code here attempts to do something.
Catch
  ' If an error occurs, code here will run.
Finally
  ' Code in this block will always run.
End Try

먼저 Try 블록의 코드가 실행됩니다. 오류 없이 코드가 실행되면 프로그램은 Catch 블록을 건너뛰고 Finally 블록의 코드를 실행합니다. Try 블록에서 오류가 발생하면 실행은 Catch 블록으로 바로 건너뛰어 이 블록의 코드가 실행된 다음 Finally 블록의 코드가 실행됩니다.

실습

Try...Catch 블록을 사용하려면

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

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

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

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

  4. 도구 상자에서 TextBox 컨트롤과 Button 컨트롤을 각각 하나씩 폼으로 끌어 옵니다.

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

  6. Button1_Click 이벤트 처리기에서 다음 코드를 입력합니다.

    Try
      Dim aNumber As Double = CDbl(Textbox1.Text)
      MsgBox("You entered the number " & aNumber)
    Catch
      MsgBox("Please enter a number.")
    Finally
      MsgBox("Why not try it again?")
    End Try
    
  7. F5 키를 눌러 프로그램을 실행합니다.

  8. 텍스트 상자에 숫자 값을 입력하고 단추를 클릭합니다. 입력한 숫자 뒤에 작업을 다시 시도하라는 메시지가 있는 메시지 상자가 표시됩니다.

  9. 이번에는 텍스트 상자에 단어 등의 숫자가 아닌 값을 입력하고 단추를 클릭합니다. 이번에는 프로그램이 텍스트 상자의 텍스트를 숫자로 변환할 수 없으며 오류가 발생합니다. Try 블록의 코드가 완료되는 대신 Catch 블록이 실행되며 숫자를 입력하라는 메시지 상자가 표시됩니다. 그런 후 Finally 블록이 실행되며 작업을 다시 시도하라는 메시지가 표시됩니다.

다음 단계

이 단원에서는 Try...Catch...Finally 블록을 사용하여 기본적인 오류 처리 구조를 만드는 방법을 배웠습니다. 이 단원 끝 부분에서는 Visual Basic 언어를 소개합니다. 다음에 제공되는 단원 시리즈에서는 프로그램에 대한 사용자 인터페이스를 만드는 방법을 살펴볼 것입니다.

다음 단원: 프로그램의 모양 만들기: Windows Forms 소개

참고 항목

작업

프로그램이 두 가능성 중 하나를 선택하도록 설정: If...Then 문

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

참조

Try...Catch...Finally 문(Visual Basic)

기타 리소스

Visual Basic에서 구조적 예외 처리