Когда я надел свою шляпу C, я думаю, что, возможно, идиоматический Clojure просто выполняет простую вещь и проверяет возвращаемые значения.
Когда я надел свою шляпу Java (неохотно, я должен добавить), я думаю, что, поскольку Clojure работает на JVM, естественным способом должно быть использование исключений JVM.
Когда я надену свою функциональную шляпу, я думаю, что должен быть какой-то монадический конструирующий или потоковый макрос, который может обрабатывать ошибки в виде композиций.
Итак, какой идиоматический способ обработки ошибок в программе Clojure?