これは私が長い間、そしてそれが不可能であったけれども長い間持っていた質問です、それで私はいくつかの調査をして解決策を見つけました。名前空間のStackFrame
オブジェクトを使用する必要があります。System.Diagnostics
例をまとめたところ、うまくいったようです。
try
{
int a = 10;
int b = 0;
litDebug.Text = (a / b).ToString();
}
catch (Exception ex)
{
StackTrace st = new StackTrace(ex, true);
StackFrame sf = st.GetFrame(0);
litDebug.Text = "" +
"<br />File Name: " + sf.GetFileName() +
"<br />Method Name: " + sf.GetMethod().Name +
"<br />Error Line Number: " + sf.GetFileLineNumber() +
"<br />Error Column Number: " + sf.GetFileColumnNumber();
}
ページ出力は次のとおりです。
File Name: c:\inetpub\www.website.com\dev\error.aspx.cs
Method Name: Page_Load
Error Line Number: 17
Error Column Number: 4
唯一の疑わしい項目はエラー列番号です-他のすべては完全に一致しています。