在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


有什么方法可以在上面的示例中用导致错误的源代码中的实际行号填充LineNumber变量?

最佳答案

这应该可以完成以下工作:

Dim stackTrace = New System.Diagnostics.StackTrace(ex)
Dim stackFrame = stackTrace.GetFrame(stackTrace.FrameCount - 1)
Dim lineNumber = stackFrame.GetFileLineNumber()


请注意,GetFrame(stackTrace.FrameCount - 1))将第一帧推入堆栈。在这种情况下,这是包含当前try-catch块的帧,这是您想要的。有关更多信息,请参见MSDN docs。)

关于c# - 输出行号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/902492/

10-13 08:24