我从一些人那里听说,在 Scala 中,我们倾向于(像其他函数式语言一样)不破坏控制流......相反,按照惯例,我们在Either
Left
.
但是我们如何从那个异常中得到 stracktrace 呢?现在我在左侧返回一个简单的Error
案例类,其中包含代码、消息和原因(Error
也)。但是,如果我有错误,我无法获得堆栈跟踪。如果我的应用程序变得复杂,可能很难找到返回的代码块Error
......根本原因是必不可少的。
那么我们在实践中该怎么做呢?
我应该返回,而不是自定义Error
的 java 类型Exception
还是Throwable
我的Left
?在不丢失堆栈跟踪和原因等重要信息的情况下,Scala 异常处理的最佳实践是什么?