Scala ^ Z3 убивает работающий поток при ошибке парсера - PullRequest
1 голос
/ 16 декабря 2011

Когда я использую Scala ^ Z3 (Z3 3.2 и соответственно библиотеку Java Scala ^ Z3) и получаю ошибку синтаксического анализатора, например:

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

Выполненный поток уничтожен, и я не могу остановить это окружением код с помощью try / catch или чего-либо еще.

Есть ли способ остановить это поведение?

1 Ответ

1 голос
/ 16 декабря 2011

Боюсь, что делать особо нечего: предположительно в библиотеке Z3 есть вызов exit, и именно это вызывает такое поведение.

Насколько я понимаю собственный интерфейс Java, я не могу помешать нативной функции завершить процесс. Лучшее, что я мог сделать, это добавить выходную ловушку к JVM, которая могла бы предупредить пользователя о том, что программа завершается из-за внешних причин, но это не позволит вам возобновить работу с того места, где вы были в потоке управления.

Идеальным решением, конечно, является то, что Z3 обновляется так, что никакая функция в общедоступном интерфейсе никогда не вызывает exit.

...