code: public static <T, R> Supplier<R> andThen(Supplier<T> supplier, BiFunction<T, Exception, R> handler){
          return () -> {
              try{
                  T result = supplier.get();
                  return handler.apply(result, null);
              }catch (Exception exception){
                  return handler.apply(null, exception);
              }
          };
      }
docs: Returns a composed function that first applies the Supplier and then applies
  {@linkplain BiFunction} {@code after} to the result.
  
  @param <T> return type of after
  @param handler the function applied after supplier
  @return a function composed of supplier and handler