Hyperlinkv0.8.0-beta.28

Effect

Effect.onErrorFilterconsteffect/Effect.ts:6876
<A, E, EB, X, XE, XR>(
  filter: Filter.Filter<Cause.Cause<E>, EB, X>,
  f: (failure: EB, cause: Cause.Cause<E>) => Effect<void, XE, XR>
): <R>(self: Effect<A, E, R>) => Effect<A, E | XE, R | XR>
<A, E, R, EB, X, XE, XR>(
  self: Effect<A, E, R>,
  filter: Filter.Filter<Cause.Cause<E>, EB, X>,
  f: (failure: EB, cause: Cause.Cause<E>) => Effect<void, XE, XR>
): Effect<A, E | XE, R | XR>

Runs the finalizer only when this effect fails and the cause matches the provided Filter.

When to use

Use when cleanup or diagnostics should run only for failures whose full Cause is accepted or transformed by a Filter, and the finalizer needs the filter's pass value plus the original cause.

resource managementonErroronErrorIfonExitFilter
Source effect/Effect.ts:687611 lines
export const onErrorFilter: {
  <A, E, EB, X, XE, XR>(
    filter: Filter.Filter<Cause.Cause<E>, EB, X>,
    f: (failure: EB, cause: Cause.Cause<E>) => Effect<void, XE, XR>
  ): <R>(self: Effect<A, E, R>) => Effect<A, E | XE, R | XR>
  <A, E, R, EB, X, XE, XR>(
    self: Effect<A, E, R>,
    filter: Filter.Filter<Cause.Cause<E>, EB, X>,
    f: (failure: EB, cause: Cause.Cause<E>) => Effect<void, XE, XR>
  ): Effect<A, E | XE, R | XR>
} = internal.onErrorFilter