示例:截获 ActiveX 方法返回的错误 (AutoLISP/ActiveX) 
该函数允许您截获 ActiveX 方法返回的错误,并决定程序应如何继续。vl-catch-all-apply 
注意:AutoLISP 中的 ActiveX 支持仅限于 Windows。 
创建新的 AutoLISP 源代码文件 
		 
		- 创建一个新的 LSP 文件,并使用名称 interceptActiveXErrors 保存它。
 
 
 
	  
加载并运行代码 
		 
		- 保存 LSP 文件,然后将其加载到 AutoCAD 中。
 
- 在AutoCAD命令提示下,输入(bnddrop)。
由于 Ray 对象扩展到无穷大,因此无法用框将其括起来,并且 GetBoundingBox 会导致以下错误: 
 
			 ; error: Automation Error. Invalid extents 
 
			 如果此代码是应用程序的一部分,则此时将停止执行。 
 
		   
 
 
	  
捕获 vla-GetBounding Box 函数创建的错误 
		 
		- 在新文件中,输入
(defun bndcatch (/ bbox)
  (setq bbox (vl-catch-all-apply
    'vla-getboundingbox
      (list (vla-item mspace (- 1 (vla-get-count mspace)))
        'll
        'ur
      )
    )
  )
  (if (vl-catch-all-error-p bbox)
    (list "Exception: " (vl-catch-all-error-message bbox))
    (list "Do something with bounding box." bbox)
  )
)
 
			 此函数用于调用 .它传递两个参数:命名被调用函数的符号和要传递给的参数列表。如果方法成功完成,则将返回值存储在变量 中。如果调用不成功,则将错误对象存储在 中。vl-catch-all-applyvla-getboundingboxvl-catch-all-apply('vla-getboundingbox)vla-getboundingboxGetBoundingBoxvl-catch-all-applybboxvl-catch-all-applybbox 
 
			 此时,函数直接发出,导致错误,执行停止。但是在 中,截获错误并继续程序执行。bnddropvla-getboundingboxbndcatchvl-catch-all-apply 
 
			 一个调用,用于检查返回值,并返回它是否为错误对象,否则。如果返回值是错误对象(如本示例中所示),则函数会发出从错误对象获取消息的问题。程序执行从此时继续。vl-catch-all-error-pvl-catch-all-applyTnilvl-catch-all-error-message 
 
		   
 
 
	  
    
 |