@SafeVarargs
    public final <R> Try<R, X> flatMapOrCatch(CheckedFunction<? super T, ? extends Try<? extends R,X>,X> fn,Class<? extends X>... classes){
        return new Try<>(xor.flatMap(i->safeApplyM(i, fn.asFunction(),classes).toEither()),classes);
    }
@ SafeVarargs public final < R > Try < R , X > flatMapOrCatch ( CheckedFunction < ? super T , ? extends Try < ? extends R , X > , X > fn , Class < ? extends X > ... classes ) { return new Try < > ( xor . flatMap ( i -> safeApplyM ( i , fn . asFunction ( ) , classes ) . toEither ( ) ) , classes ) ; }
Perform a flatMapping operation that may catch the supplied Exception types
The supplied Exception types are only applied during this map operation

@param fn flatMapping function
@param classes exception types to catch
@param <R> return type of mapping function
@return Try with result or caught exception