Effect.exit
つまり、Effect<A, E, R> を Effect<Exit<A, E>, never, R> に変換する
見方を変えれば、Effectを「絶対に失敗しないEffect」に変換してるとも言える
その結果をパターンマッチして処理したいときに使う
例えば、Effectが失敗したときは特定のログを出す、など
code:ts
import { Effect, Cause, Console, Exit } from "effect"
// Simulating a runtime error
const task = Effect.dieMessage("Boom!")
const program = Effect.gen(function* () {
const result = yield* Effect.exit(task)
if (Exit.isFailure(result)) {
const cause = result.cause
if (Cause.isDieType(cause)) {
// 明示的にDefectの種類をチェックできる
}
}
})