我不确定 error handling with monads被认为是 Clojure 的最佳实践,但它似乎很受欢迎(但是,我仍然看到很多异常(exception))。 Monads 似乎是更实用的错误处理方法。但是,我在使用错误单子(monad)时缺少堆栈跟踪。有没有办法在使用 monads 时获取堆栈跟踪?或者这里有什么替代方案?
最佳答案
正如 muhuk 所说,您将使用 monad 来避免获取堆栈跟踪。
回复another SO recently时发现的一篇文章与您链接的那个相关的是http://overwatering.org/blog/2013/12/clojures-thread-for-monads
它构建了一个 m->
threading monad,并给出了使用它产生 fail->
的示例monad 基于 error monads 文章中的工作。它允许您在执行期间有效地返回不同的错误类型。
关于error-handling - Clojure 中的 Stacktrace 和错误单子(monad),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30820413/