scala libraryDependencies += "dev.zio" %% "zio" % "1.0.0-RC22-1" scala import zio._ object MyZIOApp extends App { val myTask: ZIO[Any, Throwable, String] = ZIO.effectTotal("Hello, ZIO!") override def run(args: List[String]): URIO[ZEnv, ExitCode] = myTask.foldM( e => ZIO.effect(println(s"Execution failed with: $e")) *> ZIO.succeed(ExitCode.failure), res => ZIO.effect(println(res)) *> ZIO.succeed(ExitCode.success) ) } scala val myTask: ZIO[Any, Throwable, String] = ZIO.effectTotal(5 / 0) val recovered: ZIO[Any, String, String] = myTask.catchAll(_ => ZIO.succeed("Divide by zero error!")) scala val task1: ZIO[Any, Throwable, String] = ZIO.effectTotal("Hello") val task2: ZIO[Any, Throwable, String] = ZIO.effectTotal("ZIO!") val combined: ZIO[Any, Throwable, String] = task1.zip(task2).map { case (res1, res2) => s"$res1 $res2" }


上一篇:
下一篇:
切换中文