Emacs Lisp の例外処理について軽く調べてみた

    はじめに

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