如何在 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)
或者你可以只用以下代码包装一个代码块:
(bind-condition-handler '() handler (3 4))
正如 dvingo 指出的那样,文档没有显示任何示例,因此这里是另一个使用“错误”内置特殊形式的示例(至少在 MIT 方案中):
(define (errors-if-zero x)
(if (= x 0)
(error "x is 0")
x))