Cómo manejar excepciones personalizadas en Clojure – Resuelto

Clojure permite crear excepciones personalizadas mediante la función ex-info, que ofrece la posibilidad de asociar datos adicionales a las excepciones, facilitando el diagnóstico y la gestión de errores.

Definir una excepción personalizada

Podemos lanzar una excepción personalizada con ex-info y pasar un mapa con detalles adicionales:

(throw (ex-info "Error en la conexión" {:url "http://example.com"}))

Capturar y manejar excepciones personalizadas

Cuando se captura una excepción personalizada, podemos acceder a los datos adicionales:

(try (throw (ex-info "Error" {:detalle "Datos no válidos"})) (catch Exception e (println (ex-data e))))