当我使用 JPL(来自 JavaSE 1.8)时,Prolog(SWI-Prolog 版本 8.2.2)可以返回错误消息而不会引发异常。例如,当使用咨询并且文件有错误时:
import org.jpl7.Query;
public class Test {
public static void main(String[] args) {
try {
String t1 = "consult('test.pl')";
Query q1 = new Query(t1);
q1.hasNext();
} catch (Exception e) {
e.printStackTrace();
}
}
}
我在控制台得到输出:
ERROR: test.pl:1:23: Syntax error: Unexpected end of file
但不会抛出异常。因此,我的 Java 程序无法知道所查阅的文件有错误。我在这个简单示例中使用的文件test.pl仅包含一个带有语法错误的简单谓词:
brother(mike, stella)..
我该怎么做才能让我的 Java 程序捕捉到这个错误?类似标题的帖子似乎无法解决此问题...
也许我可以使用 JPL 或其他来源的语法检查方法,有什么具体的想法吗?