私のコードでは、System.Reflection.TargetInvocationException
がスローされる状況を迎えています。 1つの特定のケースでは、私はルート例外をどのように処理したいのか知っていますが、他のすべての例外をスローしたいと思います。私はこれを行う2つの方法を考えることができますが、どちらが良いかわかりません。内部例外のタイプを確認する
1.
try
{
//code
}
catch (System.Reflection.TargetInvocationException ex)
{
if (typeof(ex.InnerException) == typeof(SpecificException))
{
//fix
}
else
{
throw ex.Innerexception;
}
}
2.
try
{
//code
}
catch (System.Reflection.TargetInvocationException ex)
{
try
{
throw ex.InnerException;
}
catch (SpecificException exSpecific)
{
//fix
}
}
私は、一般的に例外をスローすることは遅いと承知しているので、私は最初の方法はおそらく速いだろうと感じ。あるいは、私が考えていないより良い方法がありますか?
2 1は、より読みやすく、おそらくパフォーマンスの観点から優れているIMHO、魅力的です。 – Gabber
質問: 'TargetInvocationException'を投げている呼び出しは何ですか?それはあなたのコードですか、あるいは第三者ですか? –
これはdbから読み取ったコードです。 – geekchic