handle-exceptions
(SRFI-12), a seguir está uma pequena macro para transformar a sintaxe de handle-exceptions
em uma com try/catch:(define-syntax try
(syntax-rules (catch)
((_ attempt (catch exn handler ...))
(handle-exceptions exn
(begin handler ...)
attempt))))
Exemplos de uso:
(define (try-car l #!optional default)
(try (car l)
(catch exn default)))
csi> (try-car '(1 2 3 4))
1
csi> (try-car '())
#f
csi> (try-car '() '())
()
Nenhum comentário:
Postar um comentário