(
arg: LazyArg<A> | {
readonly try: LazyArg<A>
readonly catch: (error: unknown) => E
}
)
| 86 | }): Effect.Effect<A, E> |
| 87 | <A>(thunk: LazyArg<A>): Effect.Effect<A, Cause.UnknownException> |
| 88 | } = <A, E>( |
| 89 | arg: LazyArg<A> | { |
| 90 | readonly try: LazyArg<A> |
| 91 | readonly catch: (error: unknown) => E |
| 92 | } |
| 93 | ) => { |
| 94 | let evaluate: LazyArg<A> |
| 95 | let onFailure: ((error: unknown) => E) | undefined = undefined |
| 96 | if (typeof arg === "function") { |
| 97 | evaluate = arg |
| 98 | } else { |
| 99 | evaluate = arg.try |
| 100 | onFailure = arg.catch |
| 101 | } |
| 102 | return core.suspend(() => { |
| 103 | try { |
| 104 | return core.succeed(internalCall(evaluate)) |
| 105 | } catch (error) { |
| 106 | return core.fail( |
| 107 | onFailure |
| 108 | ? internalCall(() => onFailure(error)) |
| 109 | : new core.UnknownException(error, "An unknown error occurred in Effect.try") |
| 110 | ) |
| 111 | } |
| 112 | }) |
| 113 | } |
| 114 | |
| 115 | /* @internal */ |
| 116 | export const _catch: { |
no test coverage detected