1 c# vb.net visual-studio-2008 visual-studio
在VB.NET中,有没有办法在源代码中输出当前行号?例如:
Try
' The following line will purposly cause an error
Dim BigNum As Int64
Dim LittleNum As Int16 = CShort(BigNum)
Catch ex As Exception
Dim LineNumber As Integer = <linenumber> ' How do I do this?
MessageBox.Show("Error in source code. Line: " + LineNumber)
End Try
Run Code Online (Sandbox Code Playgroud)
有没有办法用上面的例子中的LineNumber变量填充导致错误的源代码中的实际行号?
这应该做的工作:
Dim stackTrace = New System.Diagnostics.StackTrace(ex)
Dim stackFrame = stackTrace.GetFrame(stackTrace.FrameCount - 1)
Dim lineNumber = stackFrame.GetFileLineNumber()
Run Code Online (Sandbox Code Playgroud)
请注意,GetFrame(stackTrace.FrameCount - 1))将第一帧推入堆栈.在这种情况下,这是包含当前try-catch块的框架,这是您想要的.有关详细信息,请参阅MSDN文档.)
| 归档时间: |
|
| 查看次数: |
1088 次 |
| 最近记录: |