[英]Can we catch multiple exception at a same time in VB.net
我是Visual Basic的新手,正在嘗試執行以下try and catch塊代碼。 我只是在檢查是否可以在VB.net中同時捕獲多個異常。 但是我只收到一條消息。 請清楚地解釋我。
代碼在這里
Public Class tempIsZeroException : Inherits System.Exception
Public Sub New(ByVal mesage As String)
MyBase.New(mesage)
End Sub
End Class
Module Module1
Sub Main()
Dim a As Integer
Dim b As Integer
Console.WriteLine("ENter any number")
a = Console.ReadLine()
Console.WriteLine("ENter any number")
b = Console.ReadLine()
Try
If a = 0 Then
Throw New ApplicationException("asdf")
End If
If b = 0 Then
Throw New tempIsZeroException("Exception caught")
End If
Catch ex As TempIsZeroException
Console.WriteLine(ex.Message())
Catch ex1 As ApplicationException
Console.WriteLine(ex1.Message())
End Try
Console.ReadLine()
End Sub
End Module
您可以在try塊中捕獲多個異常,但不會同時引發異常(至少不會在您發布的代碼中)。
換句話說,引發的第一個異常是捕獲的第一個異常。
因此,在您的代碼中,如果a = 0
則將捕獲ApplicationException
而如果b = 0
則將tempIsZeroException
,並且如果a
和b
都等於0
則將引發ApplicationException
因為If a = 0
塊將先被命中,然后拋出並捕獲異常,繞過If b = 0
塊。
希望可以增加一些清晰度。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.