空の catch ブロックが大量に発生する本番アプリケーションをデバッグしています:
try {*SOME CODE*}
catch{}
デバッガーが IDE でキャッチにヒットしたときの例外を確認する方法はありますか?
VS では、catch ブロック内で IDE の Locals 領域を見ると、キャッチされた例外のすべての情報を含む $EXCEPTION の効果が得られます。
Visual Studio - デバッグ -> 例外 -> スローされた列の「共通言語ランタイム例外」のチェックボックスをオンにします。
あなたは書ける
catch (Exception ex) { }
次に、ここで例外がスローされてキャッチされると、ex を調べることができます。
いいえ、それは不可能です。そのコード ブロックは「例外は気にしない」と言っているからです。次のコードでグローバルな検索と置換を実行して、例外を確認できます。
catch {}
以下で
catch (Exception exc) {
#IF DEBUG
object o = exc;
#ENDIF
}
これが行うことは、本番コードの現在の何もしないキャッチを維持することですが、DEBUG で実行すると、オブジェクト o にブレークポイントを設定できるようになります。
Visual Studio を使用している場合は、未処理かどうかに関係なく、例外がスローされるたびに中断するオプションがあります。例外がスローされると、例外ヘルパー (おそらく VS 2005 以降のみ) が、その例外の種類を通知します。
+ Ctrl+をAlt押しEて、例外オプション ダイアログを表示し、これをオンにします。
@セクトリアン
何も使用していない場合、コンパイラは Exception ex 値を無視するため、これは機能しません。
その時点で例外を追加して検査することはできませんか?