これは私の現在の例外処理コードです。
throw e;
でマークされた行に特に注意してください***
。
try
{
//some code that could cause exception
}
catch (FaultException e) //first catch a particular type of exception only
{
if (Regex.IsMatch(e.Message, "something")) //satisfying a particular condition
{
Console.WriteLine("Particular exception occurred.");
return;
}
else
throw e; // <-- *** Problem! Not getting caught by the "catch" below.
}
catch (Exception e) //catch all other exceptions
{
Console.WriteLine("General exception ocurred");
return;
}
問題は次のとおりです。throw e; // <-- ***
が発生した場合、最終的なcatch
. 代わりに、例外が処理されなかったかのようにアプリがクラッシュします。
これを最も簡単な方法で修正するにはどうすればよいですか?
最初に、特定の条件を満たす例外をcatch
実際に処理することにのみ関心があることがわかりますが、他のすべて (条件を満たさない例外と満たさない例外の両方) は final に任せます。残念ながら、これは正しく機能していません。FaultException
FaultException
FaultException
catch
私は.NET 4を使用しています。