У меня возникли проблемы с получением сообщений об ошибках и предупреждений при использовании JPL. Например, попытка обратиться к несуществующему файлу непосредственно из SWI-Prolog приводит к следующему выводу:
1 ?- consult('NonExistingFile').
ERROR: source_sink `NonExistingFile' does not exist
true.
Однако при выполнении этого запроса через JPL исключение не генерируется, и метод hasMoreSolutions() класса Query возвращает значение true:
Query query = new Query("consult('NonExistingFile')");
query.hasMoreSolutions();
Как я могу определить, что произошла ошибка и обращение к NonExistingFile.pl не удалось? Тот же вопрос относится к получению предупреждающих сообщений, которые не приводят к сбою выполнения предиката.
Редактировать: описанная ситуация возникает при использовании JPL с версиями SWI-Prolog до 6.0.2
Exception in thread "main" jpl.PrologException: PrologException: error(existence_error(source_sink, 'NonExistingFile'), _0) at jpl.Query.get1(Query.java:336) at jpl.Query.hasMoreSolutions(Query.java:258) at Exceptions.main(Exceptions.java:13)
- person CapelliC   schedule 23.07.2012~/pl-devel/packages/jpl/examples/java/Versions$ ./run.sh
, я получаюJPL demo: Versions % /home/carlo/.plrc compiled 0.00 sec, 8 clauses prolog library version; 3.1.4-alpha java library version; 3.1.4-alpha c library version; 3.1.4-alpha BINGO! you appear to have the same version of each library installed
- person CapelliC   schedule 23.07.2012