vl-catch-all-apply (AutoLISP)

引数のリストを指定された関数に渡し、すべての例外をトラップします。

サポートされているプラットフォーム: Windows および Mac OS

構文と要素

(vl-catch-all-apply 'function list)
'function

タイプ: シンボル

関数。function 引数には、defun 関数で定義されたシンボル、または lambda 式を指定することができます。

list

タイプ: リスト

関数に渡される引数を含んだリスト。

戻り値

タイプ: 整数、実数、文字列、リスト、ads_name、T、nil、catch-all-apply-error

成功した場合は、関数呼び出しの結果。エラーが発生した場合、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 関数を使用して 0(ゼロ)による除算を実行するとどうなるかを見てください。

(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"