Asp.net stacktrace异常上的行号错误

Asp.net stacktrace异常上的行号错误,asp.net,vb.net,exception,stack-trace,Asp.net,Vb.net,Exception,Stack Trace,我有一些错误代码,我正在使用stacktrace查找行号,但它似乎给了我错误的号码 这是我的密码 Try Dim query As String = "Select * from table" Dim ds As DataSet = data.db(query) Catch e As Exception Dim st As New StackTrace(True) 'This is the line number it gives me' Dim sf As

我有一些错误代码,我正在使用stacktrace查找行号,但它似乎给了我错误的号码

这是我的密码

Try

    Dim query As String = "Select * from table"
    Dim ds As DataSet = data.db(query)

Catch e As Exception

    Dim st As New StackTrace(True) 'This is the line number it gives me'
    Dim sf As StackFrame = st.GetFrame(0)
    Response.Write(" Method: " & sf.GetMethod().Name)
    Response.Write(" File: " & sf.GetFileName())
    Response.Write(" Line Number: " & sf.GetFileLineNumber().ToString())

End Try
它似乎给出了StackTrace开始的行号,而不是导致异常的行号


有什么想法吗?

你肯定想要异常的堆栈跟踪吗?您正在异常处理程序的代码行中创建一个新的stacktrace


您需要的是e.StackTrace。

您确实需要异常的StackTrace吗?您正在异常处理程序的代码行中创建一个新的stacktrace

您需要的是e.StackTrace。

构造函数为代码中的这一点创建一个新的StackTrace

使用异常的属性。

构造函数为代码中的该点创建一个新的stacktrace


使用异常的属性。

为什么不使用异常对象中的信息

Catch e As Exception

    Response.Write(e.StackTrace)
    Response.Write(" Method: " & e.TargetSite)
    Response.Write(" File: " & e.Source)

End Try

为什么不使用异常对象中的信息

Catch e As Exception

    Response.Write(e.StackTrace)
    Response.Write(" Method: " & e.TargetSite)
    Response.Write(" File: " & e.Source)

End Try

如果您特别想要一个StackTrace对象,而不仅仅想要e.StackTrace中的字符串,那么将构造函数调用更改为

Dim st As New StackTrace(e, True)
st现在将按照您的预期使用源详细信息进行初始化


有关详细信息,请参阅。

如果您特别需要StackTrace对象,而不仅仅需要e.StackTrace中的字符串,请将构造函数调用更改为

Dim st As New StackTrace(e, True)
st现在将按照您的预期使用源详细信息进行初始化


有关详细信息,请参阅。

为什么不使用异常附带的stacktrace?为什么不使用异常附带的stacktrace?这提供了完整的stacktrace,但我只需要行号和文件。这提供了完整的stacktrace,但我真的只需要行号和文件