4.11. try-catch-finally 制御フローの使用

管理 CLI は簡単な try-catch-finally 制御フローを提供します。これは、trycatch、および finally ブロックに対応する 3 つの操作およびコマンドのセットで設定されます。catch および finally ブロックは任意ですが、最低でも 1 つが存在するべきで、1 つの catch ブロックのみを指定できます。

制御フローは try バッチの実行で始まります。try バッチが正常に完了すると、catch バッチはスキップされ、finally バッチが実行されます。java.io.IOException などが原因で try バッチが失敗すると、try-catch-finally 制御フローは即座に終了します。利用できる場合は catch バッチが実行されます。finally バッチは、try および catch バッチの実行に成功または失敗に関わらず、制御フロードサイドに実行されます。

try-catch-finally 制御フローを定義するコマンドは 4 つあります。

  • try コマンドは try バッチを開始します。try バッチは、catch または finally コマンドの 1 つが実行されるまで継続されます。
  • catch コマンドは try バッチの最後を示します。try バッチは引き止められ、catch バッチが開始されます。
  • finally コマンドは catch バッチまたは try バッチの最後を示し、 finally バッチを開始します。
  • end-trycatch または finally バッチを終了し、try-catch-finally 制御フローを実行するコマンドです。

以下の例はデータソースを作成または再作成し、有効化します。

try
/subsystem=datasources/data-source=myds:add(connection-url=CONNECTION_URL,jndi-name=java:/myds,driver-name=h2)

catch
/subsystem=datasources/data-source=myds:remove
/subsystem=datasources/data-source=myds:add(connection-url=CONNECTION_URL,jndi-name=java:/myds,driver-name=h2)

finally
/subsystem=datasources/data-source=myds:enable
end-try