错误行号
问题描述:
我有一些代码,错误和我使用的堆栈跟踪找出行数是什么,但它似乎是给我打错电话了错误行号
这里是我的代码
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
这似乎给我在堆栈跟踪开始,而不是什么原因造成的除外
任何想法的行号的行号?
答
如果你特别想堆栈跟踪的对象,不只是想从e.StackTrace字符串,然后改变你的构造函数调用;
Dim st As New StackTrace(e, True)
现在将根据您的预期使用源细节初始化“st”。详情请参阅http://msdn.microsoft.com/en-us/library/dsay49kt.aspx。
答
当然你想要异常的StackTrace?您正在异常处理程序的代码行中创建一个新的堆栈跟踪。
你想要e.StackTrace来代替。
答
为什么不使用Exception对象的信息?
Catch e As Exception
Response.Write(e.StackTrace)
Response.Write(" Method: " & e.TargetSite)
Response.Write(" File: " & e.Source)
End Try
+0
这给了我完整的StackTrace,但我只想要行号和文件 – 2011-04-21 15:40:28
为什么不使用异常附带的堆栈跟踪? – 2011-04-21 14:57:25