簡體   English   中英

我們可以在VB.net中同時捕獲多個異常嗎

[英]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 ,並且如果ab都等於0則將引發ApplicationException因為If a = 0塊將先被命中,然后拋出並捕獲異常,繞過If b = 0塊。

希望可以增加一些清晰度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM