错误处理和异常终止
要从 Java 程序启动 ABEND ,必须调用其中一个 Task.abend() 或 Task.forceAbend() 方法。
| 方法 | JCICS 类 | EXEC CICS 命令 |
|---|---|---|
| abend() , forceAbend() | Task | ABEND |
- ABEND
- 要从 Java 程序启动 ABEND ,请调用 其中一个 Task.abend() 方法 。 这将导致在 CICS 中设置异常终止条件并抛出 AbendException 。 如果 AbendException 未在更高级别的应用程序对象中捕获,或者由在调用程序 (如果有) 中注册的 ABEND-handler 处理,那么 CICS 将终止并回滚事务。不同的 abend() 方法包括:
- abend (字符串 abcode ) ,这将导致 ABEND 代码为
abcode的 ABEND。 - abend (字符串 abcode ,布尔值 dump ) ,这将导致 ABEND 代码为 abcode的 ABEND。 如果 dump 参数为 false ,那么不会执行任何转储。
- abend() ,这将导致 ABEND 没有 ABEND 代码,也没有转储。
- abend (字符串 abcode ) ,这将导致 ABEND 代码为
- ABEND CANCEL
- 要启动无法处理的 ABEND ,请调用 其中一个 Task.forceAbend() 方法 。 如上所述,这将导致抛出可在 Java 程序中捕获的 AbendCancelException 。 如果执行此操作,那么必须重新抛出异常以完成 ABEND_CANCEL 处理,以便当控制返回到 CICS时, CICS 将终止并回滚事务。 仅捕获 AbendCancelException 以进行通知,然后将其重新抛出。不同的 forceAbend() 方法包括:
- forceAbend (字符串 abcode ) ,这将导致 ABEND CANCEL 具有 ABEND 代码 abcode。
- forceAbend (字符串 abcode ,布尔值 dump ) ,这将导致 ABEND CANCEL 具有 ABEND 代码 abcode。 如果 dump 参数为 false ,那么不会执行任何转储。
- forceAbend() ,这将导致 ABEND CANCEL 没有 ABEND 代码且没有转储。