방법: 오류가 발생할 때 제어 유지(Visual Basic)

구조적 예외 처리에 Try...Catch...Finally 문(Visual Basic) 구문을 사용할 수 있습니다. 이 구문을 사용하면 코드를 실행하는 동안 지정된 예외가 발생할 경우 문의 특정 블록을 실행할 수 있습니다. 이러한 상황이 발생하면 코드에서 예외를 throw하므로 적절한 Catch 문을 사용하여 이 예외를 catch합니다.

코드에서 예외를 발생시키는 경우 문의 집합을 실행하려면

  • Try...Catch...Finally 구문을 사용하여 예외를 발생시킬 수 있는 코드를 묶습니다. 그런 다음 예외가 발생할 경우에 실행할 코드를 지정하고 제어가 Try...Catch...Finally 구문을 벗어나기 전에 실행할 문의 집합을 선택적으로 제공합니다.

    다음 예제에서는 Object 변수 givenDate에 제공된 값에서 정확하게 100년이 지난 날짜와 시간을 계산합니다.

    Dim givenDate As Object
    Dim nextCentury As Date
    Try
        nextCentury = Microsoft.VisualBasic.DateAdd("yyyy", 100, givenDate)
        Catch thisExcep As System.ArgumentOutOfRangeException
        ' The resulting date/time is later than December 31, 9999.
        Catch thisExcep As System.ArgumentException
        ' At least one argument has an invalid value.
        Catch thisExcep As System.InvalidCastException
        ' The value in givenDate cannot be interpreted as a date/time.
        Catch
        ' An unforeseen exception has occurred.
        Finally
        ' This block is always run before leaving the Try structure.
    End Try
    

    처음 세 개의 Catch 블록에서는 DateAdd 함수에서 예상할 수 있는 예외를 처리합니다. 마지막 Catch 블록에서는 예상치 못한 예외를 처리할 수 있습니다.

    어떤 경우에서도 Finally 블록은 항상 Try...Catch...Finally 구문을 나가기 전에 실행할 마지막 코드입니다. Try 또는 Catch 블록에서 개체 또는 데이터베이스 연결과 같은 리소스를 만들거나 연 경우 필요하면 Finally 블록을 사용하여 이러한 리소스를 닫거나 삭제할 수 있습니다.

    예외 변수 thisExcep가 Dim과 같은 선언문에 나타나지 않는 경우 As 절을 포함하는 Catch 문은 선언으로 사용됩니다.

참고 항목

작업

방법: 제어 구조 밖으로 제어 전달(Visual Basic)

방법: 하나 이상의 조건에 따라 문 실행(Visual Basic)

방법: 식의 여러 값 테스트(Visual Basic)

개념

판단 구조(Visual Basic)

루프 구조(Visual Basic)

기타 제어 구조(Visual Basic)

중첩 제어 구조(Visual Basic)

기타 리소스

Visual Basic의 제어 흐름