2

これは本当に私の麺を焼いています...

私はいくつかのコードを持っています。実行すると、Visual Studio は未処理の例外について不平を言います。そして、案の定、例外あります。ただし、それはあからさまに try/catch ブロック内にあるため、...どのように「未処理」になるのでしょうか??

私は周りを検索しましたが、見つけることができる唯一の関連するヒットはLINQに関連しています。しかし、私はLINQを使用していないので、それはできません。

関連するコードは次のようになります。

try
{
  method.Invoke(target, new object[0]);
}
catch (MyException e)
{
  Console.WriteLine(e);
}

打たれる方法Invoke()は毎回異なります。これらのメソッドのいくつかは実際に例外をスローします - これは問題ありません。しかし、それが私がそれをtryブロックに入れた理由です! 例外が処理されないと VS が不平を言っている理由がわかりません。

(はい、スローされる例外がMyExceptionオブジェクトであることを確認しました。)

この時点で、私の唯一の推測は、リフレクションの使用に何らかの形で関連しているということです。私は本当にこれを修正する必要があります...何か提案はありますか?

4

1 に答える 1

4

のドキュメントを読む必要がありますMethodInfo.Invoke

例外

TargetInvocationException - 呼び出されたメソッドまたはコンストラクターが例外をスローします。

備考

呼び出されたメソッドが例外をスローした場合、Exception.GetBaseExceptionメソッドは例外を返します。

あなたの例外はでラップされていTargetInvocationExceptionます。

于 2013-07-24T11:25:45.307 に答える