我是 scalaz 新手,但这就是我处理问题的方式:
定义我们的装饰器
sealed trait RequestError
case class ParseError(e: PlayJsonError) extends RequestError
case class HttpTimeoutError(e: NettyHttpError) extends RequestError
Run Code Online (Sandbox Code Playgroud)
使用leftMap
val r: RequestError \/ Message = for{
a <- readHttpContent().leftMap(e => HttpTimeoutError(e))
b <- parse(a).leftMap(e => ParseError(e))
} yield(b)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
96 次 |
| 最近记录: |