Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: VB7
Expertise: Advanced
Jun 16, 2003

DisplayExceptionInfo - Displaying error information

' A reusable routine that displays error information
' Note: requires Imports System.Reflection

Sub 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)
    Next
End Sub
Francesco Balena
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date