0
我正在使用swi-prolog并尝试使用异常处理。我有一个像无法获取异常消息
writeAndFail(message)
:- write(message)
, fail.
pred(arg1, arg2)
:- catch(
real_pred(arg1, arg2),
Exception,
writeAndFail(Exception)
).
系统在real_pred
身体我直接扔一个字符串,例如throw('message')
。对pred的调用(在合适的测试用例上)引发异常并正确捕获它,但消息永远不会写出来。如何修改此代码以便打印异常消息?
你是否知道catch谓语(我认为它是SWI-Specfic)?它会调用第一个参数,错误(第二个参数可以捕获特定的错误),它会调用第三个参数,所以我没有看到任何问题,但是在'writeAndFail'中,您是对的。 –
对不起,没有正确阅读,你完全正确 –