Inner Exception Demo
Imports System
Imports System.Text
Imports System.Text.RegularExpressions
Public Class MainClass
Shared Sub Main( )
Try
DangerousFunc1( )
Catch e As MyCustomException
Console.WriteLine(ControlChars.Lf + "{0}", e.Message)
Console.WriteLine("Retrieving exception history...")
Dim inner As Exception = e.InnerException
While Not (inner Is Nothing)
Console.WriteLine("{0}", inner.Message)
inner = inner.InnerException
End While
End Try
End Sub 'Main
Shared Public Sub DangerousFunc1( )
Try
DangerousFunc2( )
Catch e As System.Exception
Dim ex As New MyCustomException( _
"E3 - Custom Exception Situation!", e)
Throw ex
End Try
End Sub
Shared Public Sub DangerousFunc2( )
Try
DangerousFunc3( )
Catch e As System.DivideByZeroException
Dim ex As New Exception( _
"E2 - Func2 caught divide by zero", e)
Throw ex
End Try
End Sub 'DangerousFunc2
Shared Public Sub DangerousFunc3( )
Try
DangerousFunc4( )
Catch e As System.ArithmeticException
Throw e
Catch e As System.Exception
Console.WriteLine("Exception handled here!")
End Try
End Sub 'DangerousFunc3
Shared Public Sub DangerousFunc4( )
Throw New DivideByZeroException("E1 - DivideByZero Exception")
End Sub
End Class
Public Class MyCustomException
Inherits System.ApplicationException
Public Sub New(ByVal message As String, ByVal inner As Exception)
MyBase.New(message, inner)
End Sub 'New
End Class 'MyCustomException
Related examples in the same category