MIT スキームで例外を発生させて処理するにはどうすればよいですか?
【うまくいかない】みたいな
((< val 0) (raise "-ve value") )
MIT スキームで例外を発生させて処理するにはどうすればよいですか?
【うまくいかない】みたいな
((< val 0) (raise "-ve value") )
ドキュメントには答えがありますが、コード サンプルはありません。
(define (handler x)
(display "Handling Error: ")(display x)(newline)
(restart 1))
ここでは、エラー (ドキュメントでは「条件」と呼ばれるもの) を表示するだけで、何もしていません。
この関数ですべての条件を処理するには、次のようにします。
(bind-default-condition-handler '() handler)
または、1 つのコード ブロックを次のようにラップすることもできます。
(bind-condition-handler '() handler (3 4))