我创建了错误层次结构:
sealed trait MyError extends Throwable
final case class SecondError(msg: String) extends MyError
现在我的http4s
路线中可能会出现这种错误:
case GET -> Root / "things" => for {
response <- things.all.foldM(
error => error match {
case SecondError(_) => InternalServerError(error)
}
...
但我得到编译错误:
could not find implicit value for parameter encoder: io.circe.Encoder[Throwable]
Throwable
是否可以使用circe
and进行编码http4s
?我试着这样做:
implicit def encoderHttpThrowable: EntityEncoder[Env, Throwable] = jsonEncoderOf[Env, Throwable]
但这并没有解决问题。