Catchable exceptions
Opened this issue · 2 comments
devurandom commented
When conversion fails, java-time.api wraps the java.time.format.DateTimeParseException in clojure.lang.ExceptionInfo, which I cannot distinguish from any other exception when trying to catch:
(import '(java.time.format DateTimeParseException))
(try
(t/zoned-date-time "2024-04-08T00:00:00")
(catch DateTimeParseException _
(println "CAUGHT")))
java.time.format.DateTimeParseException: Text '2024-04-08T00:00:00' could not be parsed at index 19
clojure.lang.ExceptionInfo: Conversion failedIt would be convenient if java-time.api would throw with some form of :type key in the map that I could catch with e.g. https://github.com/gfredericks/catch-data, or if it would pass through the original Java exceptions.
frenchy64 commented
I wasn't aware of this, where does this rethrowing happen?
devurandom commented
I am currently not at my computer to be able to look at the stack trace, but I found this by searching for catch in the code:
clojure.java-time/src/java_time/defconversion.clj
Lines 60 to 65 in ee7620f