文档说eval
返回any
...我有一个案例需要知道eval
是否失败。如何测试?
答案 0 :(得分:3)
就像@leppie说的那样,你就像往常一样。这是一个例子:
(define (eval* expr)
(with-handlers ([exn? (λ (e) `(fail ,(exn-message e)))])
`(success ,(eval expr))))
另请参阅sandbox library以获得更多对评估的控制权,并且(一如既往)要注意使用eval
时附带的usual subtelties。