将参数表传递给指定函数并截取错误
(vl-catch-all-apply 'function list)
参数
’function
函数。function 参数可以为标识 defun 的符号或 lambda 表达式。
list
表,包含要传递给函数的参数。
返回值
如果成功则返回函数调用的结果。如果出现错误,vl-catch-all-apply 返回一个错误对象。
示例
如果 vl-catch-all-apply 调用函数成功,则效果和使用 apply 一样,如下例所示:
_$ (setq catchit (apply '/ '(50 5)))
10
_$ (setq catchit (vl-catch-all-apply '/ '(50 5)))
10
使用 vl-catch-all-apply 的好处是可以截取错误,然后继续处理过程。如果使用 apply 时遇到被零除的情况,则:
_$ (setq catchit (apply '/ '(50 0)))
; 错误:除数为零
使用 apply 时出现了意外情况,将显示错误信息。
如果使用 vl-catch-all-apply
_$ (setq catchit (vl-catch-all-apply '/ '(50 0)))
#<%catch-all-apply-error%>
vl-catch-all-apply 函数截取错误并返回一个错误对象。使用 vl-catch-all-error-message 来查看错误对象中的错误信息:
_$ (vl-catch-all-error-message catchit)
"除数为零"
参阅
本参考中的 *error*、 vl-catch-all-error-p 和 vl-catch-all-error-message 函数,以及 《Visual LISP 开发人员手册》中的 错误处理。
明经通道 版权所有 未经许可 不得传播 | 评论 |