다음을 통해 공유


구조적 및 비구조적 예외 처리를 사용하는 시기 선택

업데이트: 2007년 11월

구조적 예외 처리는 단순히 예외가 포함된 컨트롤 구조체, 격리된 코드 블록 및 필터를 사용하여 예외 처리 메커니즘을 만드는 것입니다. 구조적 예외 처리를 사용하면 코드를 다른 오류 형식과 구별할 수 있으며 상황에 따라 다르게 반응하는 코드를 작성할 수 있습니다. 비구조적 예외 처리에서는 코드의 처음에 있는 On Error 문이 모든 예외를 처리합니다.

설명

구조적 예외 처리는 비구조적 예외 처리보다 훨씬 더 융통성 있고 강력하며 유연합니다. 가능하면 구조적 예외 처리를 사용하는 것이 좋습니다. 그러나 다음 경우에는 비구조적 예외 처리를 사용합니다.

  • 이전 버전의 Visual Basic에서 만든 응용 프로그램을 업그레이드하는 경우

  • 응용 프로그램의 예비 버전 또는 초안 버전을 개발하고 있으며 프로그램이 제대로 종료되지 않아도 상관이 없는 경우

  • 예외를 발생시키는 원인을 미리 정확하게 알고 있는 경우

  • 기한이 촉박하여 빠른 시간에 응용 프로그램을 만들어야 하며 속도를 높이는 대신 유연성 면에서는 손해를 감수하려는 경우

  • 코드가 쉽거나 너무 짧아서 예외를 생성하는 코드 분기만 테스트하면 되는 경우

  • 구조적 예외 처리에서 지원되지 않는 Resume Next 문을 사용해야 하는 경우

동일한 함수에서 구조적 예외 처리와 비구조적 예외 처리를 함께 사용할 수는 없습니다. On Error 문을 사용하는 경우 동일한 함수에 Try...Catch 문을 사용할 수는 없습니다.

코드 내에서 예외를 처리할 것인지 여부에 상관없이 항상 단계를 다시 점검하고 코드의 기본 가정을 확인해야 합니다. 예를 들어, 응용 프로그램에서 사용자에게 전화 번호를 입력하도록 요청하는 경우에는 다음 가정이 적용됩니다.

  • 사용자는 문자가 아니라 숫자를 입력한다.

  • 숫자에는 특정 형식이 있다.

  • 사용자는 null 문자열을 입력하지 않는다.

  • 사용자는 하나의 전화 번호를 갖고 있다.

사용자 입력은 이러한 가정의 일부 또는 모두에 위반될 수도 있습니다. 강력한 코드에서는 이러한 위반이 발생할 경우 응용 프로그램을 올바로 복구할 수 있도록 적절하게 예외를 처리해야 합니다.

어떤 환경에서도 메서드가 예외를 throw하지 않을 것이라고 보장할 수 없으면 알림용 예외 처리를 사용합니다. 예외 처리는 그 만큼의 가치가 있어야 합니다. 단순히 무엇인가 잘못되었다는 것을 알리는 것 외에 예외 처리에서 생성된 메시지를 통해 예외가 발생한 이유 및 위치를 나타내야 합니다. "오류가 발생했습니다."라는 사항과 함께 이러한 정보를 알리는 메시지가 없으면 사용자가 당황하게 됩니다.

참고 항목

작업

예외 처리 문제 해결

개념

오류의 종류

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

비구조적 예외 처리 개요