コードの簡単な部分、いくつかの基本try-finally
ブロックについて簡単な質問があります。
try {
// Some code which can throw an Exception
} finally {
// Some code which also can throw an Exception
}
私の主な質問は次のとおりです。ブロック間で情報を渡すために、いくつかのローカル変数をfinally
使用せずにブロックで例外がスローされることを発見できる方法はありますか?catch
catch
これが役立つ状況はほとんどありません。変数を設定するためだけに、醜い不要なブロックを追加したくありませんthrow Exception
。最初の例は、Springまたはコンテナー管理のトランザクションメソッドを使用していて、try
ブロックException
が発生した場合です。finally
その場合、データベースを操作するために新しいトランザクションを作成する必要があります。2番目の例は、ブロックにスローされてオリジナルException
がマスクされたくない場合ですが、存在しない場合は、(存在する場合は)スローします。Exception
finally
Exception
finally
私はそれがすべてできることを知っていますcatch
が、他の方法、Javaのメタデータまたは他の何かがありますか?また、これが1つで実行されると想定できる場合は役立つ可能性があるThread
ため、現在の例外に制限されている例外を検出する方法があるかもしれませんThread
。