JPLを使用しているときに、エラーメッセージと警告メッセージを取得するのに問題があります。たとえば、存在しないファイルをSWI-Prologから直接参照しようとすると、次の出力が生成されます。
1 ?- consult('NonExistingFile').
ERROR: source_sink `NonExistingFile' does not exist
true.
ただし、JPLを介してこのクエリを実行すると、例外はスローされず、QueryクラスのhasMoreSolutions()メソッドはtrueを返します。
Query query = new Query("consult('NonExistingFile')");
query.hasMoreSolutions();
エラーが発生し、NonExistingFile.plの参照が実際に失敗したことをどのように検出できますか?同じ質問が、述語の実行が失敗する原因とならない警告メッセージの取得にも当てはまります。
編集:説明されている状況は、6.0.2までのSWI-PrologバージョンでJPLを使用している場合に発生します