「Vl-catch-all-apply」の版間の差分

提供:GizmoLabs - だいたい CAD LISP なサイト
編集の要約なし
編集の要約なし
 
(同じ利用者による、間の2版が非表示)
18行目: 18行目:


; サンプル
; サンプル
: vl-catch-all-apply 関数によって呼び出された関数が正常に終了した場合は、次の例に示すように、apply 関数を使用したのと同じ。
<pre class="brush:autolisp;">
(setq catchit (apply '/ '(50 5)))  
; vl-catch-all-apply 関数によって呼び出された関数が正常に終了した場合は、次の例に示すように、apply 関数を使用したのと同じ。
10  
(setq catchit (apply '/ '(50 5)))  
(setq catchit (vl-catch-all-apply '/ '(50 5)))  
10  
10  
(setq catchit (vl-catch-all-apply '/ '(50 5)))  
: vl-catch-all-apply 関数使用の利点は、エラーを検出し、処理を継続できることにある。 apply 関数を使用して 0(ゼロ)による除算を実行するとどうなるかを見てみる。
10  
(setq catchit (apply '/ '(50 0)))  
 
; エラー: 0(ゼロ)で除算しました  
; vl-catch-all-apply 関数使用の利点は、エラーを検出し、処理を継続できることにある。 apply 関数を使用して 0(ゼロ)による除算を実行するとどうなるかを見てみる。
: apply 関数を使用した場合は、例外が発生し、エラー メッセージが表示される。
(setq catchit (apply '/ '(50 0)))  
: 同じ処理を vl-catch-all-apply 関数を使用して実行する。
; エラー: 0(ゼロ)で除算しました  
(setq catchit (vl-catch-all-apply '/ '(50 0)))  
 
#<%catch-all-apply-error%>  
; apply 関数を使用した場合は、例外が発生し、エラー メッセージが表示される。
: vl-catch-all-apply 関数は、エラーをトラップし、エラー オブジェクトを返す。 vl-catch-all-error-message 関数を使用して、エラー オブジェクトに含まれているエラー メッセージを確認することができる。
; 同じ処理を vl-catch-all-apply 関数を使用して実行する。
(vl-catch-all-error-message catchit)  
(setq catchit (vl-catch-all-apply '/ '(50 0)))  
"0(ゼロ)で除算しました"
#<%catch-all-apply-error%>  
 
; 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(ゼロ)で除算しました"

関連事項