@Override public ReactiveSeq<T> recover(final Function<? super Throwable, ? extends T> fn) { return createSeq(new RecoverOperator<>(source, fn)); }
@Override public <EX extends Throwable> ReactiveSeq<T> recover(final Class<EX> exceptionClass, final Function<? super EX, ? extends T> fn) { Function<? super Throwable, ? extends EX> accept = e -> { if (exceptionClass.isAssignableFrom(e.getClass())) { return (EX) e; } throw ExceptionSoftener.throwSoftenedException(e); }; return createSeq(new RecoverOperator<>(source, fn.compose(accept))); }
@Override public ReactiveSeq<T> recover(final Function<? super Throwable, ? extends T> fn) { return createSeq(new RecoverOperator<>(source, fn)); }
@Override public <EX extends Throwable> ReactiveSeq<T> recover(final Class<EX> exceptionClass, final Function<? super EX, ? extends T> fn) { Function<? super Throwable, ? extends EX> accept = e -> { if (exceptionClass.isAssignableFrom(e.getClass())) { return (EX) e; } throw ExceptionSoftener.throwSoftenedException(e); }; return createSeq(new RecoverOperator<>(source, fn.compose(accept))); }