연습: 구조적 예외 처리(Visual Basic)

비구조적 예외 처리 기능을 제공하기 위해 여전히 On Error 문을 사용하여 코드의 예외를 처리할 수 있지만, Visual Basic 2005에서는 포괄적 오류 처리 기능이 있는 프로그램을 만들어 유지 관리하는 데 사용할 수 있는 구조적 예외 처리도 지원합니다. 구조적 예외 처리에서는 코드 블록이 특정 환경에 적합한지 여부를 테스트하고 그 결과에 따라 대응할 수 있습니다.

이 연습은 프로그램에 구조적 예외 처리를 추가하는 방법을 보여 주며 특히, Try...Catch...Finally 문을 사용하여 예외를 처리하는 방법과 Catch 블록 내에서 오류 필터링을 수행하는 방법을 보여 줍니다.

참고

구조적 예외 처리와 비구조적 예외 처리를 한 프로시저에서 함께 사용할 수는 없습니다.

참고

다음 지침처럼 컴퓨터에서 Visual Studio 사용자 인터페이스 요소 일부에 대한 이름이나 위치를 다르게 표시할 수 있습니다. 이러한 요소는 사용하는 Visual Studio 버전 및 설정에 따라 결정됩니다. 자세한 내용은 Visual Studio 설정을 참조하십시오.

응용 프로그램 만들기

다음 응용 프로그램은 곰 인형 판매 회사의 고객 주문 폼입니다. 사용자 인터페이스는 다음 컨트롤로 구성됩니다.

  • 고객 이름용 TextBox 한 개

  • 곰의 색상과 크기를 선택하기 위한 ComboBox 컨트롤 두 개

  • Order Button 한 개

  • 각 컨트롤의 용도를 사용자에게 알려 주는 레이블 세 개

  • 사용자가 요청된 정보를 입력하고 Order 단추를 클릭하면 응용 프로그램이 주문 내역을 요약해서 표시합니다.

응용 프로그램을 만들려면

  1. 파일 메뉴에서 새 프로젝트를 선택합니다. 새 프로젝트 대화 상자가 나타납니다.

  2. 프로젝트 형식 창에서, 아직 선택되지 않은 경우 Visual Basic 및 Windows를 선택한 다음 템플릿 창에서 Windows 응용 프로그램을 선택합니다.

  3. 속성 창에서 이름 아래에 TeddyBearProject를 입력하고 확인을 클릭합니다. 프로젝트가 솔루션 탐색기에 추가되고 Windows Forms 디자이너가 열립니다.

  4. 폼에 컨트롤을 추가하고 지정한 대로 속성을 설정합니다.

    Control

    속성

    속성 값

    Label

    Name

    Text

    customerLabel

    Bear Order Form

    TextBox

    Name

    Text

    customerName

    Customer name

    Label

    Name

    Text

    bearColorLabel

    Available Colors

    ComboBox

    Name

    Items

    Text

    bearColor

    Black, Brown, Spotted

    Bear Color

    Label

    Name

    Text

    bearSizeLabel

    Available Sizes

    ComboBox

    Name

    Items

    Text

    bearSize

    Small, Normal, Large

    Size

    Button

    Name

    Text

    order

    Order

기능 추가

컨트롤과 속성을 추가하고 설정을 마쳤으면 그에 해당하는 코드를 추가하여 컨트롤이 작동하도록 해야 합니다. 다음 코드에서는 Order 단추의 Click 이벤트를 처리하고 고객에게 메시지를 표시합니다.

폼과 해당 컨트롤에 기능을 추가하려면

  • 다음 코드를 Order 단추의 Click 이벤트에 추가합니다.

    Dim bearOrder As String
    bearOrder =
      String.Format("You have ordered a {0} {1} bear.",
      bearSize.SelectedItem, bearColor.SelectedItem)
    MsgBox(bearOrder)
    

이제 응용 프로그램에서 구조적 예외 처리 코드를 추가할 수 있습니다.

Try...Catch 블록 추가

고객이 곰 인형 색상을 지정했는지 확인하는 Try...Catch 문을 추가합니다. 다음은 주의해야 할 사항입니다.

  • 식별자가 없는 Catch 절은 모든 예외를 catch합니다.

  • When 절이 포함된 Catch 절은 식의 결과가 True가 되는 경우에만 예외를 catch합니다. 여기서 식 형식은 암시적으로 Boolean 형식으로 변환될 수 있어야 합니다.

간단한 Try...Catch 블록을 추가하려면

  • 다음 코드를 크기 및 색상 값을 테스트하는 섹션 뒤, 즉 String.Format ("You have ordered a {0} {1} bear.", BearSize.SelectedItem, BearColor.SelectedItem) 뒤에 있는 Order 단추의 Click 이벤트에 추가합니다. 이 코드에서 잘못된 색상 값이 있으면 예외가 throw됩니다. Try 문을 추가하면 편집기에서 자동으로 문의 끝에 End Try를 추가합니다.

    Try
        If bearColor.SelectedIndex < 0 OrElse
           bearColor.SelectedIndex > 2 Then
             Throw New System.Exception()
        End If
        ' The Catch statement handles errors caused by a lack of bear color.
    Catch ex As Exception When bearColor.SelectedIndex < 0
        bearOrder = String.Format("You must select a bear color!")
    Finally
        Beep() ' Beep at the end.
    End Try
    

Catch 절을 더 추가하려면

  1. 새 항목 "Purple"을 bearColor ComboBox 컨트롤에 추가합니다.

  2. 코드 줄 bearOrder = String.Format("You must select a bear color!") 뒤에 다음 코드를 추가합니다.

    Catch ex As Exception When bearColor.SelectedIndex = 3
        bearOrder = String.Format("There are no bears of that color.")
    

Catch 절은 필요한 만큼 코드에 추가할 수 있습니다.

테스트

이제 응용 프로그램을 테스트하여 제대로 작동되는지 확인할 수 있습니다.

응용 프로그램을 빌드하고 실행하려면

  1. 빌드 메뉴에서 TeddyBearProject 빌드를 선택합니다.

  2. F5 키를 눌러 응용 프로그램을 실행합니다. 기본 폼이 나타납니다.

응용 프로그램을 테스트하려면

  1. Customer Name 텍스트 상자에 이름을 입력하고 Available ColorsAvailable Sizes 콤보 상자에서 곰의 색상 및 크기를 선택합니다.

  2. Order 단추를 클릭합니다. 이전 단계에서 색상으로 Black, Brown 또는 Spotted를 선택한 경우 주문한 곰의 크기 및 색상을 나타내는 메시지가 표시됩니다.

    색상을 지정하지 않은 경우 색상을 지정하라는 메시지가 표시됩니다.

  3. OK를 클릭하여 메시지를 취소합니다.

  4. Available Colors 텍스트 상자에서 Purple을 선택한 다음 Order 단추를 클릭합니다. 보라색의 곰은 없다는 것을 나타내는 메시지가 표시됩니다.

참고 항목

참조

On Error 문(Visual Basic)

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

Throw 문(Visual Basic)

개념

Visual Basic의 구조적 예외 처리 개요

기타 리소스

예외 처리 작업(Visual Basic)