0

我正在尝试轻松处理 Common Lisp 中的错误,但我遇到了一些问题。

特别是我有这个功能。

(defun function1 (m)
 (ignore-errors (and (condition-1) (condition-2))
   (format t "Error message")))

我只是希望如果某些条件失败

(and (condition-1) (condition-2)) 

它显示了错误消息,否则只是

T

我能怎么做?有更好的方法来处理此类错误吗?我正在寻找非常简单的东西。

有人可以做一个例子来展示如何使用忽略错误?

谢谢你。

4

1 回答 1

3

您可以使用HANDLER-CASE

CL-USER 101 > (handler-case (and (evenp 2)
                                 (oddp 1))
               (error (c)
                 (princ c)
                 (values)))
T

CL-USER 102 > (handler-case (and (evenp 2)
                                 (/ 3 0)
                                 (oddp 1))
               (error (c)
                 (princ c)
                 (values)))
Division-by-zero caused by / of (3 0).
于 2016-12-30T10:36:55.773 回答