当我使用Scala ^ Z3(Z3 3.2并根据Scala ^ Z3 java库)并获得解析器错误时:
(error "line 21 column 41: invalid command, '(' expected")
Error: parser error
执行的线程被杀死,我无法通过周围来阻止它 使用try / catch或其他任何代码。
有没有办法阻止这种行为?
答案 0 :(得分:1)
恐怕没什么可做的:据说在Z3库中调用了exit
,这就是造成这种行为的原因。
据我了解Java Native Interface,我无法阻止本机函数终止进程。我能做的最好的事情是向JVM添加一个退出钩子,它可以警告用户程序由于外部原因而终止,但这不会让你恢复到控制流程中的位置。
理想的解决方案当然是更新Z3,以便公共接口中的任何功能都不会调用exit
。