VB.Net의 예외 처리: Try & Catch 처리 예제
VB.Net의 예외란 무엇입니까?
An 예외 VB.Net에서는 프로그램 실행 중에 발생하는 문제를 말합니다. 예상치 못한 상황으로 인해 발생합니다. 좋은 예로 나누기 연산을 수행하다가 0(XNUMX)으로 나누는 경우가 있습니다. 예외가 발생합니다.
VB.Net의 예외 처리란 무엇입니까?
예외 있음 VB.Net, 프로그램의 제어를 한 부분에서 다른 부분으로 옮길 수 있습니다. VB.Net에서 예외는 다음 4개의 키워드를 사용하여 처리됩니다.
키워드 | 세부 |
---|---|
시험 | Try 블록의 작업은 특정 예외가 활성화될 코드 블록을 식별하는 것입니다. 그 뒤에는 catch 블록이 와야 합니다. |
잡아라 | 예외 포착은 이 블록에서 수행됩니다. Exception을 처리하는 예외 핸들러입니다. |
최종적으로 | finally 블록을 사용하여 예외 발생 여부에 관계없이 일련의 명령문을 실행합니다. |
던지다 | 문제가 발생한 후 예외가 발생합니다. 이것은 Throw 키워드의 작업입니다. |
VB.Net의 Try Catch 구문
VB.Net의 Try Catch 문은 아래 구문을 사용하여 정의됩니다.
Try [ try_Statement(s) ] [ Exit Try ] [ Catch [ exception_name [ As type ] ] [ When expression ] [ catch_Statement(s) ] [ Exit Try ] ] [ Catch ... ] [ Finally [ finally_Statement(s) ] ] End Try
Try/Catch 블록은 예외를 발생시킬 수 있는 코드를 둘러싸야 합니다. 이 코드를 보호된 코드라고 합니다. 다양한 유형의 예외를 포착해야 하는 경우 여러 catch 문을 사용할 수 있습니다.
Try Catch 및 finally를 사용한 VB.Net의 예외 처리 예
Try/Catch 문을 사용하면 오류 처리 시스템에서 일반 프로그램 코드를 분리할 수 있습니다. Try, Catch 및 finally 키워드를 사용하여 예외를 처리하는 방법을 살펴보겠습니다.
단계 1) 새 콘솔 애플리케이션을 만듭니다.
단계 2) 이 코드를 사용하십시오 :
Module Module1 Sub divisionFunction(ByVal n1 As Integer, ByVal n2 As Integer) Dim answer As Integer Try answer = n1 \ n2 Catch ex As DivideByZeroException Console.WriteLine("Exception: {0}", ex) Finally Console.WriteLine("Answer is: {0}", answer) End Try End Sub Sub Main() divisionFunction(4, 0) Console.ReadKey() End Sub End Module
단계 3) 툴바에서 시작 버튼을 클릭하여 코드를 실행합니다. 다음과 같은 출력이 나와야 합니다.
다음은 코드의 스크린샷입니다.
코드 설명:
- Module1이라는 모듈을 만듭니다.
- 두 개의 정수 인수 n1 및 n2를 사용하여 DivisionFunction이라는 하위 프로시저를 만듭니다. ByVal은 인수 값이 값으로 전달됨을 나타내는 VB.Net 키워드입니다.
- 답변이라는 정수 변수를 만듭니다.
- Try/Catch 블록의 시작입니다. 예외가 발생할 수 있다고 의심되는 코드를 이 블록으로 묶어야 합니다.
- 변수 n1과 n2의 값 사이에 나누기 연산을 수행합니다. 나누기 연산의 결과는 변수 answer에 할당됩니다. 이 코드는 예를 들어 숫자를 XNUMX으로 나눌 때 예외를 발생시킬 수 있으므로 Try/Catch 블록으로 둘러싸고 있습니다.
- DivideByZeroException이라는 예외를 포착하고 생성된 예외 메시지를 ex에 할당합니다.
- 발생한 예외의 유형/이름을 사용자에게 알리기 위해 콘솔에 일부 텍스트를 인쇄합니다.
- 마지막 블록. 이는 예외가 포착되었는지 여부에 관계없이 실행됩니다.
- 콘솔에 텍스트를 인쇄하여 나누기 연산의 결과를 보여줍니다.
- Try 블록의 끝, 즉 오류 처리 코드의 끝입니다.
- DivisionFunction 하위 프로시저가 끝납니다.
- 기본 하위 프로시저를 시작합니다.
- divisionFunction 하위 프로시저를 호출/호출합니다. 두 정수 인수의 값이 여기에 전달됩니다. n1=4 및 n2=0의 값입니다. 즉, 나누기 연산은 4\0, 즉 n1\n2가 됩니다.
- 사용자가 콘솔 창을 닫는 작업을 수행할 때까지 기다리는 콘솔 창을 일시 중지합니다.
- 기본 하위 프로시저가 끝납니다.
- 모듈이 종료됩니다.
VB.Net의 사용자 정의 예외
VB.Net을 사용하면 자신만의 예외를 정의할 수 있습니다. ApplicationException 클래스에서 사용자 정의 예외 클래스를 가져올 수 있습니다. 예를 들어 이를 보여드리겠습니다.
VB.Net의 사용자 정의 예외 예
다음은 VB.Net의 사용자 정의 예외의 예입니다.
단계 1) 새 콘솔 애플리케이션을 만듭니다.
단계 2) 다음 코드를 사용하십시오.
Module Module1 Public Class HeightIsZeroException : Inherits ApplicationException Public Sub New(ByVal text As String) MyBase.New(text) End Sub End Class Public Class Height Dim height As Integer = 0 Sub showHeight() If (height = 0) Then Throw (New HeightIsZeroException("Zero Height found")) Else Console.WriteLine("Height is: {0}", height) End If End Sub End Class Sub Main() Dim hght As Height = New Height() Try hght.showHeight() Catch ex As HeightIsZeroException Console.WriteLine("HeightIsZeroException: {0}", ex.Message) End Try Console.ReadKey() End Sub End Module
단계 3) 코드를 실행하려면 상단 바에서 시작 버튼을 클릭합니다. 다음과 같은 출력이 나와야 합니다.
다음은 코드의 스크린샷입니다.
코드 설명:
- Module1이라는 모듈을 만듭니다.
- HeightIsZeroException이라는 예외 클래스를 생성합니다. 클래스는 모든 ApplicationException 클래스를 상속합니다.
- New라는 하위 프로시저를 만듭니다. text라는 문자열 인수 하나를 사용합니다.
- 기본 클래스 생성자를 호출하고 여기에 위 인수를 전달합니다.
- 새 하위 프로시저가 끝납니다.
- HeightIsZeroException 클래스의 끝입니다.
- Height라는 클래스를 만듭니다. 공개 액세스 수정자는 공개입니다. 이는 공개적으로 액세스할 수 있음을 의미합니다.
- Height라는 정수 변수를 만들고 해당 값을 0으로 초기화합니다.
- showHeight()라는 하위 프로시저를 만듭니다.
- Height 변수의 값이 0인지 확인합니다. If…Then 조건을 사용했습니다.
- 위 조건이 true인 경우 HeightIsZeroException을 발생시킵니다. 이 예외가 발생하면 Zero Height Found 메시지가 표시됩니다.
- If 조건이 참이 아닐 때 실행되는 Else 부분입니다.
- 높이가 0이 아닐 때 콘솔에 인쇄할 메시지입니다.
- If 조건의 끝입니다.
- showHeight() 하위 프로시저가 끝납니다.
- 수업 종료 높이.
- 기본 하위 프로시저를 시작합니다.
- Height 클래스의 인스턴스로 Height라는 개체를 만듭니다.
- 예외 처리 블록의 시작입니다.
- Height 클래스에 정의된 showHeight() 하위 프로시저를 호출합니다. 이 메소드에 액세스하기 위해 이 클래스의 객체를 사용했습니다. 이 줄은 예외가 발생할 수 있습니다. 따라서 이를 예외 처리 코드로 묶었습니다.
- HeightIsZeroException 예외가 발생할 경우 객체 ex로 포착합니다.
- HeightIsZeroException이 발생했을 때 콘솔에 인쇄할 메시지입니다.
- 예외 처리 블록의 끝입니다.
- 사용자가 콘솔 창을 닫는 작업을 수행할 때까지 콘솔 창을 일시 중지합니다.
- 기본 하위 프로시저가 끝납니다.
- 모듈이 종료됩니다.
VB.Net에서 예외 발생
예외 처리에서 개체를 던지도록 선택할 수 있습니다. 그러나 개체는 System에서 파생되어야 합니다. 직접 또는 간접적으로 Exceptionclass입니다. 예를 들어:
VB.Net의 예외 발생 예
다음은 VB.Net에서 예외 발생의 예입니다.
단계 1) 새 콘솔 애플리케이션을 만듭니다.
단계 2) 다음 코드를 사용하십시오.
Module Module1 Sub Main() Try Throw New ApplicationException("Throwing a custom exception") Catch ex As Exception Console.WriteLine(ex.Message) Finally Console.WriteLine("The Finally Block") End Try Console.ReadKey() End Sub End Module
단계 3) 코드를 실행하려면 상단 바에서 시작 버튼을 클릭하세요. 다음을 얻어야 합니다.
다음은 코드의 스크린샷입니다.
코드 설명:
- Module1이라는 모듈을 만듭니다.
- 기본 하위 프로시저를 시작합니다.
- 오류 처리 코드의 시작입니다.
- 예외 객체를 던짐. 이 코드는 예외를 생성할 수 있으므로 Try/Catch 블록으로 둘러싸고 있습니다.
- 라인에서 예외가 발생하는 경우 객체 ex로 예외를 포착합니다.
- 예외가 발생할 경우 콘솔에 예외 메시지를 인쇄합니다.
- 예외가 포착되었는지 여부에 관계없이 실행되는 finally 블록입니다.
- finally 블록이 실행될 때 콘솔에 인쇄할 메시지입니다.
- 예외 처리 코드의 끝입니다.
- 사용자가 콘솔을 닫는 조치를 취할 때까지 콘솔을 잠시 일시 중지합니다.
- 기본 하위 프로시저가 끝납니다.
- 모듈이 종료됩니다.
제품 개요
- 예외란 프로그램 실행 중 예상치 못한 상황으로 인해 발생하는 문제를 말합니다.
- 일부 코드에서 예외가 발생할 것으로 의심되면 해당 코드를 Try/Catch 블록으로 묶습니다.
- finally 블록은 Try/Catch 블록 뒤에 오고 예외가 포착되었는지 여부를 실행합니다.
- VB.Net을 사용하면 사용자 정의 예외를 만들 수 있습니다.