Выдает ошибку, которая будет отложена в Clojure - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть некоторый код, который выглядит следующим образом (d is manifold.deferred):

  (if throw-first-error
    (throw
      (d/error!
      (ex-info "Error"
               {:cause "first error"})))
    (-> (do-things-that-could-cause-error)
        (d/catch' (fn [e] (throw
                              (ex-info "Error"
                                     {:cause "second error"})))))))

Вторая ошибка откладывается, чего я и хочу, потому что она находится внутри d/catch'. Как сделать так, чтобы первая ошибка была отложена, так что она может быть перехвачена функцией, вызывающей этот код с той же d/catch', что и вторая ошибка. Спасибо!

1 Ответ

0 голосов
/ 11 сентября 2018

Разобрался! d/error-deferred вместо стандартного throw решает эту проблему.

...