Throw
以下、なぜ私の元の行番号を維持しないのですか?
DerivedPageを実行すると、ログファイルにエラーが7行目としてリストされます。4
行目と言ってはいけませんか?私が持っていればそれは理にかなっていThrow ex
ますが、私はそうではありません。それ自体で、エラーを再スローしてバブルアップするだけで
はありませんか?Throw
DerivedPageでブロックを完全に削除するとTry...Catch
、ログファイルにエラー行として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のスタックトレースには行番号は含まれず、例外の詳細のみが含まれます。