Common lisp 忽略公共Lisp上的错误

Common lisp 忽略公共Lisp上的错误,common-lisp,handleerror,Common Lisp,Handleerror,我试图轻松地处理CommonLisp中的错误,但我有一些问题 特别是,我有这个功能 (defun function1 (m) (ignore-errors (and (condition-1) (condition-2)) (format t "Error message"))) 我只想知道,如果某些条件不适用于 (and (condition-1) (condition-2)) 它会显示错误消息,否则只需 T 我该怎么办? 有更好的方法来处理这类错误吗?我正在寻找一些非常简单的

我试图轻松地处理CommonLisp中的错误,但我有一些问题

特别是,我有这个功能

(defun function1 (m)
 (ignore-errors (and (condition-1) (condition-2))
   (format t "Error message")))
我只想知道,如果某些条件不适用于

(and (condition-1) (condition-2)) 
它会显示错误消息,否则只需

T
我该怎么办? 有更好的方法来处理这类错误吗?我正在寻找一些非常简单的东西

有人可以举例说明如何使用忽略错误

谢谢。

您可以使用

你可以用


明确地说,您的意思是
CONDITION-1
CONDITION-2
是可能表示错误条件的形式,还是它们只是返回布尔值的形式?@jkiiski两者都有。条件-1可以是-调用一个应该返回布尔值或错误的函数-或者只是一个布尔表达式。@RainerJoswig我正在尝试,伙计,我是Common Lisp的新手,我只想在上面的一些代码发出错误信号或返回false时显示一条消息。请澄清,你是说
CONDITION-1
CONDITION-2
是表示错误条件的表单,还是它们只是返回布尔值的表单?@jkiiski两者都有。条件-1可以是-调用一个应该返回布尔值或错误的函数-或者仅仅是一个布尔表达式。@RainerJoswig我在尝试,伙计,我是Common Lisp的新手,我只想在上面的一些代码发出错误信号或返回false时显示一条消息。
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).