VB.Net/Development/Exception Catch — различия между версиями

Материал из VB Эксперт
Перейти к: навигация, поиск
м (1 версия)
 
(нет различий)

Версия 16:40, 26 мая 2010

Catch an Exception

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


Catch an Exception in function and find out the logic flow

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


Catch Exception outside its Function

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


Catch More than One Exception

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


Catch more than one Exception type

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


Catch Unknown Exceptions

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