@Override
    public Try<T> recoverWith(ThrowableFunction1<Throwable, Try<T>> function) {
        try {
            return function.apply(throwable);
        }
        catch(Throwable t) {
            return new Failure<>(t);
        }
    }
@Override
    public Try<T> recoverWith(ThrowableFunction1<Throwable, Try<T>> function) {
        try {
            return function.apply(throwable);
        }
        catch(Throwable t) {
            return new Failure<>(t);
        }
    }
@ Override public Try < T > recoverWith ( ThrowableFunction1 < Throwable , Try < T > > function ) { try { return function . apply ( throwable ) ; } catch ( Throwable t ) { return new Failure <> ( t ) ; } }
Applies the provided function to the Throwable of this {@link Failure} and returns the result.

@since 1.4
Applies the provided function to the Throwable of this { @link Failure } and returns the result .