如果在JZOS启动器中设置环境变量,则>
EXPORT JZOS_ABEND_EXIT = 50
然后在Java代码中调用
System.exit(51)
,程序将像这样终止:
IEF450I MYPROG JAVAJVM创建-异常= S000 U3333原因= 00000010
是否可以指定异常结束代码,例如使其成为U999而不是U3333。我在How to trigger a user ABEND?中找到了对LE异常终止例程'CEE3ABD'的隐式引用,但是如果有人指出如何从Java调用该例程,我将不胜感激。我需要编写JNI代码并从C语言调用它吗?还是有更简单的方法呢?
[如果我在JZOS启动器EXPORT JZOS_ABEND_EXIT = 50中设置环境变量,然后在Java代码中调用System.exit(51),程序将像这样终止:IEF450I MYPROG JAVAJVM ...
我玩了一下,发现对于31位JZOS,您还可以通过LE-runtime-options注册用户编写的条件处理程序,并使用它来捕获U3333异常并将其更改为其他内容。
我通过使用JNI调用解决了这个问题。我不依赖于用户编写的退出处理程序,而是直接从Java调用方法Abend.abend。