Scala ^ Z3在解析器错误时杀死正在运行的Thread

时间:2011-12-16 11:43:16

标签: scala z3

当我使用Scala ^ Z3(Z3 3.2并根据Scala ^ Z3 java库)并获得解析器错误时:

(error "line 21 column 41: invalid command, '(' expected")
Error: parser error

执行的线程被杀死,我无法通过周围来阻止它 使用try / catch或其他任何代码。

有没有办法阻止这种行为?

1 个答案:

答案 0 :(得分:1)

恐怕没什么可做的:据说在Z3库中调用了exit,这就是造成这种行为的原因。

据我了解Java Native Interface,我无法阻止本机函数终止进程。我能做的最好的事情是向JVM添加一个退出钩子,它可以警告用户程序由于外部原因而终止,但这不会让你恢复到控制流程中的位置。

理想的解决方案当然是更新Z3,以便公共接口中的任何功能都不会调用exit