Я читал о том, как правильно обрабатывать (Option
, Try
и Either
) и определять исключения в Scala.
Мой вопрос: сделатьИерархии исключений имеют смысл в Scala?Например, в настоящее время у нас есть проект Scala, реализующий что-то вроде:
class ServiceException(msg: String) extends Exception(msg)
class StorageServiceException(msg: String) extends ServiceException(msg)
class StorageServiceNotAvailableException(msg: String)
extends StorageServiceException(msg)
Существует ли идиоматический способ определения такой иерархии?Или, может быть, эта концепция полностью поглощена чем-то другим?
ЗАКЛЮЧЕНИЕ ОТ ОТВЕТОВ (см. Ответ и комментарии ниже)
Иерархия исключений имеет смысл, если вы хотите восстановитьиз не листового исключения.Хотя это не мешает вам работать с механизмами Option/Try/Either
, что более идиоматично, чем традиционные try/catch
.