4.11. 使用 try-catch-finally Control Flow
管理 CLI 提供了一个简单的 尝试概括性
控制流程。它由与 try
、catch
和 最终
块对应的三组操作和命令组成。捕获
块 和最终
块是可选的,但其中至少应存在,并且只能指定一个捕获块。
控制流程从执行 尝试
批处理开始。如果 尝试
批处理成功完成,则将跳过 捕获
批处理并执行 最终
批处理。如果 尝试
批量失败,例如 java.io.IOException
,try-
控制流将立即终止,如果可用,则会执行 catch 批处理。catch
-finally最后
的批处理始终在控制流程的末尾执行,尝试
和 捕获
批处理是成功还是无法执行。
有四个命令定义了 try-catch-finally 控制流:
-
尝试
命令可以启动尝试
的批处理。尝试
批处理将继续,直到遇到catch
或last
命令之一。 -
catch
命令标记尝试
批处理的末尾。然后,尝试
批处理退回,并且捕获
批次启动。 -
最后
,命令标记捕获
批处理或尝试
批处理的末尾,并启动最终
批处理。 -
end-try
是指结束捕获或
-finally 控制流程的命令。最终
批处理并运行 try-catch
以下示例创建或重新创建数据源并启用它:
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