CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoLISP 开发指南

关于捕获错误并继续执行程序(AutoLISP)

2023-1-6 12:57| 发布者: admin| 查看: 2170| 评论: 0|来自: AutoCAD

摘要: 程序应该拦截并尝试处理错误,而不是允许控制在可能的情况下传递给*错误*。

程序应拦截并尝试处理错误,而不是允许控制权在可能的情况下传递。*error*

该函数旨在调用任何函数,从函数返回值,并捕获可能发生的任何错误。该函数需要两个参数:vl-catch-all-apply

  • 标识函数或 lambda 表达式的符号
  • 要传递给被调用函数的参数列表

重要的是能够捕获错误并允许程序继续执行。以下示例用于将两个数字相除:vl-catch-all-applyvl-catch-all-apply

(setq catchit (vl-catch-all-apply '/ '(50 5)))
10

此示例的结果与使用应用执行除法或仅使用/除法提供的数字的结果相同。

下面的示例用于将两个数字相除,其中一个数字为零:vl-catch-all-apply

(setq catchit (vl-catch-all-apply '/ '(5 0)))
#<%catch-all-apply-error%>

此示例的结果返回一个 VL-CATCH-ALL-APPLY-ERROR 对象,可以使用该对象进行解释。可以使用 type 函数来确保在调用之前使用错误对象。vl-catch-all-error-messagevl-catch-all-error-message

下面的示例检查错误对象并返回错误消息:

(if (vl-catch-all-error-p catchit)
  (vl-catch-all-error-message catchit)
)
"divide by zero"

路过

雷人

握手

鲜花

鸡蛋

最新评论

2024年新出cad图库素材

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-6 22:00

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部