VB.Net/Development/Exception Catch
Содержание
Catch an Exception
<source lang="vbnet"> Imports System Imports System.Text Imports System.Text.RegularExpressions Public Class MainClass
Shared Sub Main(ByVal args As String()) Console.WriteLine("Enter Run...") Func1( ) Console.WriteLine("Exit Run...") End Sub Shared Public Sub Func1( ) Console.WriteLine("Enter Func1...") Func2( ) Console.WriteLine("Exit Func1...") End Sub "Func1 Shared Public Sub Func2( ) Console.WriteLine("Enter Func2...") Try Console.WriteLine("Entering Try block...") Throw New System.Exception( ) Console.WriteLine("Exitintg Try block...") Catch Console.WriteLine("Exception caught and handled") End Try Console.WriteLine("Exit func2...") End Sub "Func2
End Class
</source>
Catch an Exception in function and find out the logic flow
<source lang="vbnet"> Imports System Imports System.Text Imports System.Text.RegularExpressions
Public Class MainClass
Shared Sub Main( ) Console.WriteLine("Enter Main...") Console.WriteLine("Enter func1...") Try Console.WriteLine("Entering Try block...") Func2( ) Console.WriteLine("Exiting Try block...") Catch Console.WriteLine("Exception caught and handled") End Try Console.WriteLine("Exit func1...") Console.WriteLine("Exit Main...") End Sub "Main Shared Public Sub Func2( ) Console.WriteLine("Enter Func2...") Throw New System.Exception( ) Console.WriteLine("Exit Func2...") End Sub "Func2
End Class
</source>
Catch Exception outside its Function
<source lang="vbnet"> Imports System Imports System.Text Imports System.Text.RegularExpressions Public Class MainClass
Shared Sub Main(ByVal args As String()) Console.WriteLine("Enter Run...") Func1( ) Console.WriteLine("Exit Run...") End Sub Shared Public Sub Func1( ) Console.WriteLine("Enter func1...") Try Console.WriteLine("Entering Try block...") Func2( ) Console.WriteLine("Exiting Try block...") Catch Console.WriteLine("Exception caught and handled") End Try Console.WriteLine("Exit func1...") End Sub "Func1 Shared Public Sub Func2( ) Console.WriteLine("Enter Func2...") Throw New System.Exception( ) Console.WriteLine("Exit Func2...") End Sub "Func2
End Class
</source>
Catch More than One Exception
<source lang="vbnet"> Imports System Imports System.Text Imports System.Text.RegularExpressions Public Class MainClass
Shared Sub Main(ByVal args As String()) Try Dim a As Double = 5 Dim b As Double = 0 Console.WriteLine("Dividing {0} by {1}...", a, b) Console.WriteLine("{0} / {1} = {2}", _ a, b, DoDivide(a, b)) " most derived exception type first Catch e As System.DivideByZeroException Console.WriteLine("DivideByZeroException caught!") Catch e As System.ArithmeticException Console.WriteLine("ArithmeticException caught!") " generic exception type last Catch Console.WriteLine("Unknown exception caught") End Try End Sub " do the division if legal Shared Public Function DoDivide(ByVal a As Double, ByVal b As Double) As Double If b = 0 Then Throw New System.DivideByZeroException( ) End If If a = 0 Then Throw New System.ArithmeticException( ) End If Return a / b End Function
End Class
</source>
Catch more than one Exception type
<source lang="vbnet"> Imports System Imports System.Text Imports System.Text.RegularExpressions
Public Class MainClass
Shared Sub Main( ) Try Dim a As Double = 5 Dim b As Double = 0 Console.WriteLine("Dividing {0} by {1}...", a, b) Console.WriteLine("{0} / {1} = {2}", _ a, b, DoDivide(a, b)) " most derived exception type first Catch e As System.DivideByZeroException Console.WriteLine("DivideByZeroException caught!") Catch e As System.ArithmeticException Console.WriteLine("ArithmeticException caught!") " generic exception type last Catch Console.WriteLine("Unknown exception caught") End Try End Sub "Main Shared Public Function DoDivide(ByVal a As Double, ByVal b As Double) As Double If b = 0 Then Throw New System.DivideByZeroException( ) End If If a = 0 Then Throw New System.ArithmeticException( ) End If Return a / b End Function
End Class
</source>
Catch Unknown Exceptions
<source lang="vbnet"> Imports System Imports System.Text Imports System.Text.RegularExpressions
Public Class MainClass
Shared Sub Main( ) Try Console.WriteLine("Open file here") Dim a As Double = 5 Dim b As Double = 0 Console.WriteLine("{0} / {1} = {2}", a, b, DoDivide(a, b)) Console.WriteLine("This line may or may not print") " most derived exception type first Catch e As System.DivideByZeroException Console.WriteLine("DivideByZeroException caught!") Catch Console.WriteLine("Unknown exception caught!") Finally Console.WriteLine("Close file here.") End Try End Sub "Main Shared Public Function DoDivide(ByVal a As Double, ByVal b As Double) As Double If b = 0 Then Throw New System.DivideByZeroException( ) End If If a = 0 Then Throw New System.ArithmeticException( ) End If Return a / b End Function
End Class
</source>