コンディションを通知し,そのコンディションに適合したコンディションハン ドラの探索を行ないコンディションの処理を行なう. 処理されるコンディションは,与えられた〈データ〉によって次のように なる. もし 〈データ〉 がコンディションであれば,そのコンディションを直接 エラーハンドラに与え処理を行なう. この場合は,〈引数〉が与えられるとエラーとなる. すなわち,関数 signal は唯一の引数,コンディションとともに呼び出 されなければならない. もし 〈データ〉 がコンディションクラスであれば,使用されるコンディショ ンは,
の結果である. もし〈データ〉が文字列であれば,使用されるコンディションは,(apply make-condition 〈データ〉〈引数〉
〈引数
〉)
(make-condition 'simple-conditionの結果である. この時,文字列〈データ〉は関数 formatに与えるフォーマット文字列 であり,メッセージの出力結果は,次の式を実行した場合と同じである.
'format-string 〈データ〉
'format-arguments 〈引数〉
〈引数
〉)
(format *error-output*フォーマット文字列の詳細については,16.3節を参照されたい. もし〈データ〉が,コンディション,コンディションオブジェクト,文字列以 外の場合は,エラーとなる.
〈フォーマット〉〈引数〉
〈引数
〉)
以上のプロセスで生成,または,与えられたコンディションオブジェクトの コンディションクラスに適応したハンドラの探索を行ない,そのハンドラに 制御を移しコンディションの処理を行なう. もし,生成されたコンディションを処理するハンドラが探索できなかった場合, #fが返される.