在我的Scalaz析取中键入用于联合不相关失败案例的类
发布时间:2020-12-16 18:28:13 所属栏目:安全 来源:网络整理
导读:我对 Scalaz分离有所了解.这些上的左侧类型可以是来自其他库的不同类型的错误案例类.例如,一个故障情况可能是由于HTTP超时,而另一个故障情况可能表示Play中的Json解析错误. 有没有办法使用某种形式的类来声明’这4个类/特征都是这种类型的错误’而不实际让它
我对
Scalaz分离有所了解.这些上的左侧类型可以是来自其他库的不同类型的错误案例类.例如,一个故障情况可能是由于HTTP超时,而另一个故障情况可能表示Play中的Json解析错误.
有没有办法使用某种形式的类来声明’这4个类/特征都是这种类型的错误’而不实际让它们从一个共同的特征继承?如果确实存在,则还需要能够在理解中推断出它. 解决方法
我是scalaz的新手,但这就是我处理这个问题的方法:
定义我们的装饰器 sealed trait RequestError case class ParseError(e: PlayJsonError) extends RequestError case class HttpTimeoutError(e: NettyHttpError) extends RequestError 使用leftMap val r: RequestError / Message = for{ a <- readHttpContent().leftMap(e => HttpTimeoutError(e)) b <- parse(a).leftMap(e => ParseError(e)) } yield(b) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |