В моем коде я сталкиваюсь с ситуацией, в которой бросается System.Reflection.TargetInvocationException
. В одном конкретном случае я знаю, как я хочу обработать исключение корня, но я хочу бросить все другие исключения. Я могу придумать два способа сделать это, но я не уверен, что лучше.
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
}
}
Я знаю, что бросание исключений вообще происходит медленно, поэтому я чувствую, что первый метод, возможно, будет быстрее. Альтернативно, есть ли лучший способ сделать это, о котором я не думал?