Java言語仕様から::
値Vがスローされたために、tryブロックの実行が突然完了した場合は、次の選択肢があります。(SQLException throw in try句)
実行時型のVが、tryステートメントの任意のcatch句のキャッチ可能な例外クラスと割り当て互換である場合、最初の(左端の)そのようなcatch句が選択されます。選択したcatch句のパラメータに値Vが割り当てられ、そのcatch句のブロックが実行されます。次に、選択肢があります。
catchブロックが正常に完了すると、finallyブロックが実行されます。次に、選択肢があります。
finallyブロックが正常に完了すると、tryステートメントは正常に完了します。
何らかの理由でfinallyブロックが突然完了した場合、同じ理由でtryステートメントが突然完了します。
理由Rのためにcatchブロックが突然完了した場合、finallyブロックが実行されます。次に、選択肢があります:( InstantiationException throw)
finallyブロックが正常に完了すると、理由Rでtryステートメントが突然完了します。(System.out.println( "This is the finally"))
実行ステップごとにテキストを太字で示しています。
要約する:
- tryブロックでSQLExceptionがスローされます
- SQLExceptionを処理するCatch句に制御が転送されました
- InstantiationExceptionをスローすると、Catch句が突然完了します
- 最後に、テキストを印刷してブロックを実行します