「Vl-catch-all-apply」の版間の差分
編集の要約なし |
編集の要約なし |
||
(同じ利用者による、間の1版が非表示) | |||
18行目: | 18行目: | ||
; サンプル | ; サンプル | ||
<pre class="brush:autolisp;"> | |||
; 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))) | |||
; エラー: 0(ゼロ)で除算しました | |||
; apply 関数を使用した場合は、例外が発生し、エラー メッセージが表示される。 | |||
; 同じ処理を vl-catch-all-apply 関数を使用して実行する。 | |||
(setq catchit (vl-catch-all-apply '/ '(50 0))) | |||
apply 関数を使用した場合は、例外が発生し、エラー メッセージが表示される。 | #<%catch-all-apply-error%> | ||
同じ処理を vl-catch-all-apply 関数を使用して実行する。 | |||
; vl-catch-all-apply 関数は、エラーをトラップし、エラー オブジェクトを返す。 | |||
; vl-catch-all-error-message 関数を使用して、エラー オブジェクトに含まれているエラー メッセージを確認することができる。 | |||
(vl-catch-all-error-message catchit) | |||
"0(ゼロ)で除算しました" | |||
</pre> | |||
----- | ----- | ||
関連事項 | 関連事項 | ||
* [[*error*]] 関数 | * [[*error*]] 関数 | ||
* [[apply]] 関数 | |||
* [[vl-catch-all-error-p]] 関数 | * [[vl-catch-all-error-p]] 関数 | ||
* [[vl-catch-all-error-message]] 関数 | * [[vl-catch-all-error-message]] 関数 | ||
[[Category:AutoLISP]] | [[Category:AutoLISP]] |
2022年8月16日 (火) 08:06時点における最新版
- 構文
- (vl-catch-all-apply 'function list)
- 機能
- 引数のリストを指定された関数に渡し、すべての例外をトラップする。
- 引数
-
- 'function : 関数。 function 引数には、defun 関数で定義されたシンボル、または lambda 式を指定することができる。
- list : 関数に渡される引数を含んだリスト。
- 戻り値
- 成功した場合は、関数呼び出しの結果。 エラーが発生した場合、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))) ; エラー: 0(ゼロ)で除算しました ; 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) "0(ゼロ)で除算しました"
関連事項
- *error* 関数
- apply 関数
- vl-catch-all-error-p 関数
- vl-catch-all-error-message 関数