ネストしたtry-catch
SharePointのカスタムC#コードでブロックします。内側のcatch
ブロック内のコードが例外をスローした場合、1つのtry
ブロック(内側のブロック)でのみコードを実行します。
try
{
//do something
try
{
//do something if exception is thrown, don't go to parent catch
}
catch(Exception ex) {...}
}
catch(Exception ex)
{ .... }
さまざまな種類の例外を使用できることは知っていますが、それは私が探しているものではありません。
概要
例外が発生した場合、内部のcatch
に加えて親catch
にも到達したくない。
その場合に外側の例外を実行したくない場合は、内側のcatchブロックから例外をスローしないでください。
try
{
//do something
try
{
//do something IF EXCEPTION HAPPENs don't Go to parent catch
}
catch(Exception ex)
{
// logging and don't use "throw" here.
}
}
catch(Exception ex)
{
// outer logging
}
内側のcatch
が例外を処理した場合、外側のcatch
は起動しません
外側のcatch
も発火させたい場合は、以下を実行する必要があります。
try
{
//do something
try
{
//do something
}
catch(Exception ex)
{
// do some logging etc...
throw;
}
}
catch(Exception ex)
{
// now this will be triggered and you have
// the stack trace from the inner exception as well
}
本質的には、コードがあるので、外側のcatch
は内側のtry {} catch {}
からトリガーされません