はじめに
さっき, Java の例外処理について調べて見たので, こんどは Emacs Lisp の例外処理について調べてみた.
文法
error
致命的なエラーが発生した時に利用. 実行中の elisp を強制停止.
[sourcecode language=“emacs-lisp” title=""] (error “%s” “Fatal Error Occured!!!") [/sourcecode]
signal
エラーシンボルとデータを伴って例外をあげる.
[sourcecode language=“emacs-lisp” title=""] (signal ‘wrong-type-argument ‘(0)) [/sourcecode]
java における throw new HogeException (“hoge”);
condition-case
エラーを補足する.
[sourcecode language=“emacs-lisp” title=""] (defun error-test () (interactive) (condition-case error-var (/ 0 0) (message “%s” error-var))) (error-test) [/sourcecode]
java における catch のような役割.
unwind-protect
後処理をする.
[sourcecode language=“emacs-lisp” title=""] (defun error-test2 () (interactive) (unwind-protect (/ 0 0) (message “%s” “you shall die!!"))) (error-test) [/sourcecode]
java における finally のような役割.