Module1
)
Dim strace AsNew StackTrace(True)
Dim frame AsNew StackFrame
frame = strace.GetFrame(1) '0表示调用堆栈的最里层(本函数),1表示上一层也就是调用ReportPosition()的函数, MsgBox("错误信息:"& msg & ControlChars.CrLf &"位置:"& frame.ToString)
'可以将frame.ToString()的内容保存到文件 '在trycatch中调用该方法可以方便跟踪异常位置 End Sub End Module '调用 Button1.Click
Try 'do something Dim i As Int32 =0 i =1/ i
Catch ex As Exception
ReportPosition(ex.Message)
EndTry End Sub
, _
ByVal e As System.ComponentModel.CancelEventArgs) _
HandlesMyBase.Closing
Dim O As System.Diagnostics.StackTrace = _
New System.Diagnostics.StackTrace(True)
Dim F As System.Diagnostics.StackFrame
F = O.GetFrame(7)
SelectCase F.GetMethod.Name.ToString
Case"SendMessage" MsgBox("Closing because of call in code.")
Case"CallWindowProc" MsgBox("Closing because of system menu click.")
Case"DispatchMessageW" MsgBox("Closing because of Task Manager.")
CaseElse MsgBox("Don't Know why I'm closing!!??")
EndSelect End Sub