私はトップレベルで、リフレクションを介してメソッドを呼び出すコンポーネントを記述しています。私のコンポーネントを使いやすくするために、呼び出されたメソッドによってスローされた例外をキャッチして、それらをアンラッピングしたいと思います。TargetInvocationExceptionを正しくアンラップする方法は?
このように、私のようなものがあります:
try { method.Invoke(obj, args); }
catch (TargetInvocationException ex) {
throw ex.InnerException;
}
はしかし、これは内部例外スタックトレースを吹き飛ばします。 throw
はここでは使用できません(別の例外オブジェクトを再利用しているためです)。キャッチブロックで元の例外タイプ、メッセージ、およびスタックトレースがすべて通過することを確認するにはどうすればよいですか?
質問タイトルにタグを付ける必要はありません。タグ付けを正しく行うだけで十分です。 – spender
スタックトレースを混乱させるのはなぜ簡単だと思いますか? –