幫助說明中寫得很清楚了!有沒有用?我認為很好用!
範例
如果由 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)))
; error: divide by zero
當您使用 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)
"divide by zero" |