退出 SWI Prolog 中的所有错误

Exiting on all errors in SWI Prolog

有没有办法让 SWI Prolog 在遇到任何语法或解析错误时退出?我正在编写测试并自动 运行 它们,如果我有语法错误,我并不总是注意到错误消息。

假设您指的是源文件编译错误,load_files/2 谓词缺少在第一个错误时停止的选项。一种可能的解决方案是定义 message_hook/3 谓词以在语法错误的情况下调用 abort/0halt/1。类似于:

:- multifile user:message_hook/3.

user:message_hook(syntax_error(Culprit), _, _) :-
    % maybe print Culprit for some debugging information
    abort.