我聽說有些人在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感謝這似乎非常好! –