看一下这个链接,其中描述了 Prolog 中的 catch/3 和 throw/1 机制。
使用此机制可以引发异常或处理异常。
示例(网站上给出)是:
p:- true.
p:- throw(b).
q:- catch(p, B, write('hellop')), r(c).
r(X) :- throw(X).
Run Code Online (Sandbox Code Playgroud)
然后调用:
?- catch(p, X, (write('error from p'), nl)).
Run Code Online (Sandbox Code Playgroud)
将说明异常处理。