独自のコンディションを定義し発生させる - lisp-cookbook-ja/common-lisp GitHub Wiki

コンディション

コンディション一般から継承できますが、通常は独自のエラーコンディションを作りたいので、errorから継承します。

defclassと書き方は同じです。コンディションシステムとオブジェクトシステムは統合されているので、コンディション型もまたCLOSのクラスです。

(define-condition my-error (error)
  ((text :initarg :text :reader my-error-text)))

独自に定義したコンディションを発生させます。

(error 'my-error :text "My Error!")

my-errorコンディションだけを補足します。

(handler-case (error 'my-error :text "My Error!")
  (my-error () nil))
; => NIL