Common lisp 忽略公共Lisp上的错误
我试图轻松地处理CommonLisp中的错误,但我有一些问题 特别是,我有这个功能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 我该怎么办? 有更好的方法来处理这类错误吗?我正在寻找一些非常简单的
(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).