如何更改方法返回类型以管理错误和异常

时间:2016-04-22 09:27:38

标签: scala exception design-patterns error-handling monads

以下代码在库中(我无法编辑它)。

trait ATraitInALibraryICantEdit[T] {
  def save(data: T): Future[T]
  // ....
}

然后,在我的代码中,我有:

class MyClass[T] extends ATraitInALibraryICantEdit[T] {
  override def save(data: T): Future[T] = {
    // ...
  }
}

这是简单的继承。但是,就我而言,我想将方法​​的签名更改为(管理异常):

// Type change : Future[T] --> Future[Either[String, T]]
override def save(data: T): Future[Either[String, T]] = {
  // ...
}
总之,我的问题是如何更改方法的返回类型,以使其适应我的错误管理方式。

我想,我应该使用一种模式(而不是直接继承),但我不认识巫婆。如果没有更新库,我甚至不会知道。

解决方案是使用异常,我宁愿更喜欢使用monads。

0 个答案:

没有答案