【发布时间】:2020-11-07 03:11:35
【问题描述】:
我正在使用 JNA 运行一个共享库(使用 Intel 编译)。在极少数情况下,Fortran 调用以 forrtl : severe 代码结束。类似的东西
forrtl: severe (408): fort: (3): Subscript #1 of the array IWU has value 0 which is less than the lower bound of 1
有没有办法使用 JNA “捕捉”这个运行时错误?
【问题讨论】:
-
我认为修复该错误会更好,Fortran 默认使用索引 1 开始其数组,而您的代码中可能没有考虑到这一点。
-
当错误没有发生时你确定结果正确吗?
-
@albert 当然会,但这非常困难。我们在大数据环境中运行这个 Fortran 模拟(数百万个不同的输入,其中一些可能是错误的(不现实的),一定的容错性会很好。
-
是的,容错可能是必要的,但这涉及程序中的数据和数据的处理,而不是下标错误,因为这清楚地表明了一个编程错误,其中一个条件没有正确处理,从而导致在不正确的索引中。在后一种情况下,应设置通过 JNI 返回的错误代码/消息,或者应选择正确的索引。
标签: java error-handling fortran jna error-code