コードの簡単な部分、いくつかの基本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がマスクされたくない場合ですが、存在しない場合は、(存在する場合は)スローします。ExceptionfinallyExceptionfinally
私はそれがすべてできることを知っていますcatchが、他の方法、Javaのメタデータまたは他の何かがありますか?また、これが1つで実行されると想定できる場合は役立つ可能性があるThreadため、現在の例外に制限されている例外を検出する方法があるかもしれませんThread。