かなり単純に見えるかもしれない質問があります(もちろん、あなたが答えを知っているなら)。
ある関数が別の関数を呼び出していますが、呼び出し先が例外をスローした場合でも、呼び出し元から実行を継続したいと思います。例を挙げましょう:
something function1()
{
try
{
//some code
int idNumber = function2();
//other code that need to execute even if function2 fails
return something;
}
catch(Exception e)
{//... perhaps something here}
}
編集:function1にはreturnステートメントもあるので、途中で実際にクラッシュすることはありません
function2では、何かをする必要がありますが、何かが失敗した場合にのみログに記録する必要があります。例:
int function2()
{
try
{
//dostuff
}
catch(Exception e)
{
//Log stuff to db
}
}
さて、私の質問は、関数2がエラーをスローした場合でも、関数1で実行を続行したい場合はどうすればよいですか?
投げる必要がある場合、時々私は混乱します。またはeを投げます。または何もスローしません(キャッチブロックを空のままにします)