はじめに

さっき, 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 のような役割.

Bookmarks