本節では,システムであらかじめ定義されているコンディションクラスを説明
する.
なお,本節で説明する各クラスのスロットは,そのクラスが固有に持つスロッ
トである.
各クラスは,クラス固有のスロット以外にスーパークラスから継承するスロッ
トを持つということに注意されたい.
すべてのコンディションクラスはエラーであろうとなかろうと,このクラスを 継承しなくてはならない. したがって,コンディションクラスはすべてクラス conditionのサブクラ スとなる.
このコンディションクラスは,第1引数としてフォーマット文字列が与えられ たとき関数 signalによって通知されるコンディションクラスである. このコンディションクラスのダイレクトスーパークラスは,クラス conditionである.
スロットとして, format-stringと format-argumentsが 用意されている.
このコンディションクラスは,関数 breakによって通知されるコンディ ションクラスである. このコンディションクラスのダイレクトスーパークラスは,クラス simple-conditionである.
スロットとして, envが用意されており,デバッグレベル (19.14節参照)で参照する環境データをAリストとして格納する のに用いる.
警告に関するすべてのクラスはこのコンディションを継承する. このコンディションクラスのダイレクトスーパークラスは,クラス conditionである.
このコンディションクラスは,第1引数としてフォーマット文字列が与えられ たとき関数 warnによって通知されるコンディションクラスである. このコンディションクラスのダイレクトスーパークラスは,クラス warningとクラス simple-conditionである.
serious-condition 【コンディションクラス】
このコンディションクラスは,すべての重大なコンディション(もし処理されな かった場合,会話形式の割り込みを必要とするほど重大なコンディション)が 継承するコンディションクラスである. このコンディションクラスのダイレクトスーパークラスは,クラス conditionである.
エラーに関するすべてのクラスはこのコンディションを継承する. このコンディションクラスのダイレクトスーパークラスは,クラス serious-conditionである.
スロットとして, functionと argumentsが 用意されている. スロット functionには,エラーを発した関数が格納される. スロット argumentsには,エラーを発した関数への引数のリストが格納 される.
このコンディションクラスは,第1引数としてフォーマット文字列が与えられ たとき関数 errorによって通知されるコンディションである. このコンディションクラスのダイレクトスーパークラスは,クラス errorと simple-conditionである.
このコンディションクラスは,プリミティブなバイトコードにより通知さ れるコンディションが継承すべきコンディションクラスである. このコンディションクラスのダイレクトスーパークラスは,クラス errorである.
スロットとして byte-code-functionが用意されており,エラーを通知し たバイトコード命令が格納される.
not-function-apply 【コンディションクラス】
このコンディションクラスは,関数があるべきところにそれが与えら れない場合に通知されるコンディションである. このコンディションクラスのダイレクトスーパークラスは,クラス errorである.
このコンディションクラスは,記号に関するエラーのコンディションクラ スである. このコンディションクラスのダイレクトスーパークラスは,クラス errorである.
スロットとして, objectが用意されており,このスロットに エラーを起こした記号が格納される.
このコンディションクラスは,バインドされていない記号を用いた時に 通知されるコンディションである. このコンディションクラスのダイレクトスーパークラスは,クラス symbol-errorである.
unbound-symbol-bci 【コンディションクラス】
このコンディションクラスは,バインドされていない記号を用いた時に バイトコードにより通知されるコンディションである. このコンディションクラスのダイレクトスーパークラスは,クラス symbol-errorとクラス byte-code-errorである.
not-ordinary-symbol 【コンディションクラス】
このコンディションクラスは,特殊フォームを表す記号を大域変数名として使 用した時に通知されるコンディションである. このコンディションクラスのダイレクトスーパークラスは,クラス symbol-errorである.
このコンディションクラスは,関数が要求している引数と異なった引数を 与えたときに,その関数によって通知されるコンディションである. このコンディションクラスのダイレクトスーパークラスは,クラス errorである.
スロットとして, messageが用意されており,これにエラー メッセージの文字列が格納される.
illegal-argument-type 【コンディションクラス】
このコンディションクラスは,関数が要求している引数の型と異なる型の引数 を与えた時にその関数によって通知されるコンディションである. このコンディションクラスのダイレクトスーパークラスは,クラス illegal-argumentである.
スロットとして, objectと typeが用意されており, 各々のスロットにはエラーとなったオブジェクト, 要求されている引数の型を表す文字列が格納される.
{ illegal-number-of-arguments 【コンディションクラス】
このコンディションクラスは,関数が要求している引数の数と異なる数の引数を 与えた時にその関数によって通知されるコンディションである. このコンディションクラスのダイレクトスーパークラスは,クラス illegal-argumentである.
スロットとして, number-of-argumentsが用意されており, 要求されている引数の個数が格納される.
このコンディションクラスは,算術演算に関するエラーのコンディションクラ スである. このコンディションクラスのダイレクトスーパークラスは,クラス errorである.