docs: public static <T, R> Callable<R> andThen(Callable<T> callable, Function<T, R> resultHandler, Function<Exception, R> exceptionHandler){
          return () -> {
              try{
                  T result = callable.call();
                  return resultHandler.apply(result);
              }catch (Exception exception){
                  return exceptionHandler.apply(exception);
              }
          };
      }