下面,为什么不Throw
维护我的原始行号?
如果我运行 DerivedPage,我的日志文件将错误列为第 7 行。
不应该说第 4 行吗?如果我有,那将是有道理的Throw ex
,但我没有。
本身不是Throw
应该重新抛出错误并冒泡吗?
如果我Try...Catch
在 DerivedPage 中完全删除该块,那么我的日志文件会正确地将 3 列为错误行,但如果出现错误,我将无法记录任何信息。
我可以做些什么来维护我的 DerivedPage,并且仍然让我的日志保持正确的行号?
Public Class DerivedPage Inherits BasePage
Page_Load(o,e)
Try
Dim a = 3 -"a"
Catch ex As Exception
log.Info(...)
Throw
End Try
End Class
基本页面:
Public Class BasePage
Protected Overrides Sub OnError(e)
MyBase.OnError(e)
log.Error(Me.GetType(), Server.GetLastError)
End Sub
End Class
编辑:log.Error
如果存在则输出 InnerException。在这种情况下确实如此。但是,InnerException 的堆栈跟踪不包含行号,仅包含异常详细信息。