コードのルートにある種のキャッチオール例外メカニズムを持たせたいので、アプリが予期せず終了した場合でも、有用なログを提供できます。
の線に沿った何か
static void Main () {
if (Debugger.IsAttached)
RunApp();
else {
try {
RunApp();
}
catch (Exception e) {
LogException(e);
throw;
}
}
}
これはすべて正常に機能しますが、例外が発生した後にデバッガーをアタッチしたい場合に問題が発生します。
例外はランタイムにエスケープされるため、Windows は Visual Studio をアタッチするように求めますが、再スローされるため、スタックのさらに上のすべてのローカルとパラメーターが失われます。
デバッガをアタッチしてすべての有用な情報を保持する方法を提供しながら、これらの例外をログに記録する方法はありますか?