程序应该拦截并尝试处理错误,而不是在可能的情况下允许控制权传递给。*error* 该函数旨在调用任何函数,从函数返回值,并捕获可能发生的任何错误。该函数需要两个参数:vl-catch-all-apply
重要的是能够捕获错误并允许程序继续执行。以下示例用于对两个数字进行除法:vl-catch-all-applyvl-catch-all-apply (setq catchit (vl-catch-all-apply '/ '(50 5))) 10 此示例的结果与您使用 apply 执行除法或仅使用 / 除以提供的数字的结果相同。 以下示例用于将两个数字除以,其中一个数字为零: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" 相关概念父主题: |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2024-12-15 14:44
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.