我听说有些人在Scala中倾向于(像其他函数式语言一样)不要打断控制流程......而是按照惯例我们返回错误Either
Left
。使用Either处理故障 - >堆栈跟踪在哪里?
但是,我们如何从这个异常中得到散记? 现在我回到左边一个简单的Error
案例类与代码,消息和原因(Error
太)。但是,如果我有一个错误,我无法获得堆栈跟踪。 如果我的应用程序变得复杂,则可能很难找到返回Error
的代码块......根本原因很重要。
那么我们在实践中做什么?
我应该返回,而不是自定义Error
,在我的Left
Java类型Exception
或Throwable
? Scala异常处理的最佳实践是什么,而不会丢失重要信息,如堆栈跟踪和原因?
就像一个说明,在即将到来的斯卡拉2.10 [也有尝试](http://blog.richdougherty.com/2012/06/error-handling-with-scalas-try.html)错误处理 –
@ om-nom-nom感谢这似乎非常好! –