この記事は関西Lispユーザ会アドベントカレンダー2017の23日目です。 CommonLispを触っていて、例外処理まわりが面白いと感じました。 CommonLispには"Condition System"という例外処理機構があります。Condition Systemの基本は、Conditionの通知とハンドリングです。 基本 Conditionというのはエラーや警告、何らかの通知を表すものです。実際にはconditionクラスを継承したクラス(CLOSのクラス)のことを指します。conditionクラスのサブクラスとしてerror, warning, simple-conditionクラスなどがあり、通知の重要度や内容によって使い分けます。もちろん、これらを継承して独自のConditionクラスを定義することもできます。 Conditionクラスの定義にはdefine-conditio