devxlogo

DisplayExceptionInfo – Displaying error information

DisplayExceptionInfo – Displaying error information

' A reusable routine that displays error information' Note: requires Imports System.ReflectionSub DisplayExceptionInfo(ByVal e As Exception)    ' Display the error message.    Console.WriteLine(e.Message)    Dim st As New StackTrace(e, True)    Dim i As Integer    For i = 0 To st.FrameCount - 1        ' Get the i-th stack frame.        Dim sf As StackFrame = st.GetFrame(i)        ' Get the corresponding method for that stack frame.        Dim mi As MemberInfo = sf.GetMethod        ' Get the namespace where that method is defined.        Dim res As String = mi.DeclaringType.Namespace & "."        ' Append the type name.        res &= mi.DeclaringType.Name & "."        ' Append the name of the method.        res &= mi.Name        Dim objParameters() As ParameterInfo = sf.GetMethod.GetParameters()        Dim objParameter As ParameterInfo        Dim strParameterString As String = ""        strParameterString &= "("        For Each objParameter In objParameters            'Only add commas if there are more than one parameter            ' (default length of 0 plus the opening parenthesis = 1).            If strParameterString.Length  1 Then                strParameterString &= ", "            End If            strParameterString &= objParameter.Name & " As " & _                objParameter.ParameterType.Name        Next        strParameterString &= ")"        res &= strParameterString        ' Append information about the position in source file        ' (but only if Debug information is available).        If sf.GetFileName  "" Then            res &= " (" & sf.GetFileName & ", Line " & sf.GetFileLineNumber & _                ", Col " & sf.GetFileColumnNumber        End If        ' Append information about offset in MSIL code, if available.        If sf.GetILOffset  StackFrame.OFFSET_UNKNOWN Then            res &= ", IL offset " & sf.GetILOffset.ToString        End If        ' Append information about offset in native code.        res &= ", native offset " & sf.GetNativeOffset & ")"        Console.WriteLine(res)    NextEnd Sub

devx-admin

Share the Post: