Получение сообщений ERROR и WARNING из SWI-Prolog через JPL

У меня возникли проблемы с получением сообщений об ошибках и предупреждений при использовании 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


person Epicurus    schedule 23.07.2012    source источник
comment
Я пытался, но получил исключение: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
comment
Это очень интересно. Я получаю это сообщение об ошибке только в потоке ошибок по умолчанию (System.err): ОШИБКА: source_sink `NonExistingFile' не существует. Но никаких исключений не выбрасывается. Какие версии SWI-Prolog/JPL вы используете?   -  person Epicurus    schedule 23.07.2012
comment
Я стараюсь держать только последние. Я использую Linux и всегда строю из исходников с настройками по умолчанию. Ян выпустил 2 или 3 дня назад обновление, мне еще нужно обновиться... Когда я запускаю ~/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


Ответы (1)


Проблема, связанная с консультационными ошибками, решена при использовании JPL с SWI-Prolog 6.1.9 (в настоящее время версия для разработки). Исключение возникает при попытке обратиться к несуществующему файлу.

person Epicurus    schedule 24.07.2012