わかった; このコードがデバッグモードで実行されていると仮定して -
static StackFrame GetTopFrameWithLineNumber(Exception e)
{
StackTrace trace = new StackTrace(e);
foreach (StackFrame frame in trace.GetFrames())
{
if (frame.GetFileLineNumber() != 0)
{
return frame;
}
}
return null;
}
私は常にnullを返しています。Exception.StackTrace
文字列を調べると、フレームワーク以外のコードには明らかに行番号があるのに、スタック フレームに行番号がないのはなぜですか? 私が認識していない例外からスタック トレースを作成する際に問題はありますか?
わかりやすくするために編集: スローされた例外で、StackTrace プロパティの行番号を確認できます。それは、必要なものがすべて揃っていることを意味すると思います。