このコンディション型は次のように定義することができる。
(define-condition-type &message &condition make-message-condition message-condition? (message condition-message))
この型はコンディションの性質のもっと詳細なメッセージを人間に届ける。
このコンディション型は次のように定義することができる。
(define-condition-type &warning &condition make-warning warning?)
この型は原則的には後続のプログラムの実行を即座に禁じるものではないが後でプログラムを実行することを妨げることもある。
このコンディション型は次のように定義することができる。
(define-condition-type &serious &condition make-serious-condition serious-condition?)
この型は安全に無視することはできないほど十分深刻なコンディションを記述する。このコンディション型は主に他のコンディション型のスーパータイプとして意図されている。
このコンディション型は次のように定義することができる。
(define-condition-type &error &serious make-error error?)
この型はエラーを記述する。典型的には外の世界やユーザーとプログラムの相互作用がうまくいかないことで発生するエラーを記述する。
このコンディション型は次のように定義することができる。
(define-condition-type &violation &serious make-violation violation?)
この型は典型的にはプログラミングエラーによって発生する言語標準違反やライブラリ標準違反を記述する。
このコンディション型は次のように定義することができる。
(define-condition-type &assertion &violation make-assertion-violation assertion-violation?)
この型は手続きに不正な個数の引数や誤った型の引数を渡すような不正な呼び出しを記述する。
このコンディション型は次のように定義することができる。
(define-condition-type &irritants &condition make-irritants-condition irritants-condition? (irritants condition-irritants))
irritants はオブジェクトのリストでなければいけない。このコンディションはコンディションの付加的な情報を提供する。典型的には例外を検知した手続きの引数のリストである。
この型のコンディションはレポートのセクション R6RS:翻訳:R6RS:11.14 Errors and violations の errro 手続きと assertion-violation 手続きによって生成される。
このコンディション型は次のように定義することができる。
(define-condition-type &who &condition make-who-condition who-condition? (who condition-who))
who はシンボルか文字列でありその例外をレポートした実体を識別する。 この型のコンディションは R6RS:翻訳:R6RS:11.14 Errors and violations の errro 手続きと assertion-violation 手続き、それと syntax-violation 手続き(R6RS:翻訳:Standard Libraries:12.9 Syntax violations)によって生成される。
このコンディション型は次のように定義することができる。
(define-condition-type &non-continuable &violation make-non-continuable-violation non-continuable-violation?)
この型は raise から呼び出された例外ハンドラが return したことを示す。
このコンディション型は次のように定義することができる。
(define-condition-type &implementation-restriction &violation make-implementation-restriction-violation implementation-restriction-violation?)
この型は仕様によって許されている実装上の制限、例えば NaN や無限の表現に関するものに違反したことを記述する。(R6RS:翻訳:Standard Libraries:11.3 Flonums)
このコンディション型は次のように定義することができる。
(define-condition-type &lexical &violation make-lexical-violation lexical-violation?)
この型はデータ構文のレベルの構文違反を記述する。
このコンディション型は次のように定義することができる。
(define-condition-type &syntax &violation make-syntax-violation syntax-violation? (form syntax-violation-form) (subform syntax-violation-subform))
この型は構文違反を記述する。 form はエラーのあった構文オブジェクトもしくは間違ったフォームのコードを表現したデータでなければならない。 subform は任意のオブジェクトで違反をもっと正確に指摘する構文オブジェクトか間違ったフォームである。 #f にすることでもっと精確な情報がないことを示すこともできる。
このコンディション型は次のように定義することができる。
(define-condition-type &undefined &violation make-undefined-violation undefined-violation?)
この型はプログラム中の未束縛識別子を記述する。
図 7.1 標準コンディション型の階層