' 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


The Role of Call Data: How Call Tracking Can Improve Customer Experience
Who would argue that experiences reign supreme? But not just any experiences — the ones that occur when customers interact with your business. It’s these real-life interactions that have the