リフレクションを使用してオブジェクトからプロパティ値を取得するコードがあります。場合によっては、null 参照があるなどの理由で、プロパティが例外をスローすることがあります。
object result;
try
{
result = propertyInfo.GetValue(target, null);
}
catch (TargetInvocationException ex)
{
result = ex.InnerException.Message;
}
catch (Exception ex)
{
result = ex.Message;
}
最終的にコードは正しく動作しますが、デバッガーで実行している場合:
プロパティが例外をスローすると、例外がキャッチされなかったかのように IDE がデバッガーにドロップします。実行をクリックすると、プログラムが流れ、例外が TargetInvocationException として出力され、InnerException プロパティに実際の例外が含まれます。
どうすればこれを防ぐことができますか?