Interface ThrowingBiFunction<T,​U,​R,​X extends Throwable>

  • Type Parameters:
    T - The type of the first argument to the function.
    U - The type of the second argument to the function.
    R - The type of the result of the function.
    X - The type of checked exception that can be thrown.
    All Known Subinterfaces:
    ThrowingBinaryOperator<T,​X>
    Functional Interface:
    This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

    @FunctionalInterface
    public interface ThrowingBiFunction<T,​U,​R,​X extends Throwable>
    Represents a function that accepts two arguments and produces a result. This is a checked-exception throwing equivalent of BiFunction.
    • Method Detail

      • apply

        R apply​(T t,
                U u)
         throws X extends Throwable
        Applies this function to the given arguments.
        Parameters:
        t - The first function argument.
        u - The second function argument.
        Returns:
        The function result.
        Throws:
        X - If an error occurs.
        X extends Throwable
      • andThen

        default <V> ThrowingBiFunction<T,​U,​V,​X> andThen​(ThrowingFunction<? super R,​? extends V,​? extends X> after)
        Returns a composed function that first applies this function to its input, and then applies the after function to the result. If evaluation of either function throws an exception, it is relayed to the caller of the composed function.
        Type Parameters:
        V - The type of output of the after function, and of the composed function.
        Parameters:
        after - The function to apply after this function is applied.
        Returns:
        A composed function that first applies this function and then applies the after function.
        Throws:
        NullPointerException - If after is null.
      • onErrorThrowAsChecked

        default <E extends ThrowableThrowingBiFunction<T,​U,​R,​E> onErrorThrowAsChecked​(Function<? super X,​? extends E> errorMapper)
        Returns a function that applies this function to its input. Any checked exception thrown by this function is transformed using the given error mapper, and the returned function throws the transformation result.
        Type Parameters:
        E - The type of checked exception to transform to.
        Parameters:
        errorMapper - The function to use to transform any checked exception thrown by this function.
        Returns:
        A function that transforms any thrown checked exception.
        Throws:
        NullPointerException - If errorMapper is null.
      • onErrorThrowAsUnchecked

        default <E extends RuntimeExceptionBiFunction<T,​U,​R> onErrorThrowAsUnchecked​(Function<? super X,​? extends E> errorMapper)
        Returns a function that applies this function to its input. Any checked exception thrown by this function is transformed using the given error mapper, and the returned function throws the transformation result.
        Type Parameters:
        E - The type of unchecked exception to transform to.
        Parameters:
        errorMapper - The function to use to transform any checked exception thrown by this function.
        Returns:
        A function that transforms any thrown checked exception.
        Throws:
        NullPointerException - If errorMapper is null.
      • onErrorHandleChecked

        default <E extends ThrowableThrowingBiFunction<T,​U,​R,​E> onErrorHandleChecked​(ThrowingFunction<? super X,​? extends R,​? extends E> errorHandler)
        Returns a function that applies this function to its input. Any checked exception thrown by this function is transformed using the given error handler, and the returned function returns the transformation result.
        Type Parameters:
        E - The type of checked exception that can be thrown by the given error handler.
        Parameters:
        errorHandler - The function to use to transform any checked exception thrown by this function.
        Returns:
        A function that transforms any thrown checked exception.
        Throws:
        NullPointerException - If errorHandler is null.
      • onErrorHandleUnchecked

        default BiFunction<T,​U,​R> onErrorHandleUnchecked​(Function<? super X,​? extends R> errorHandler)
        Returns a function that applies this function to its input. Any checked exception thrown by this function is transformed using the given error handler, and the returned function returns the transformation result.
        Parameters:
        errorHandler - The function to use to transform any checked exception thrown by this function.
        Returns:
        A function that transforms any thrown checked exception.
        Throws:
        NullPointerException - If errorHandler is null.
      • onErrorApplyChecked

        default <E extends ThrowableThrowingBiFunction<T,​U,​R,​E> onErrorApplyChecked​(ThrowingBiFunction<? super T,​? super U,​? extends R,​? extends E> fallback)
        Returns a function that applies this function to its input. If this function throws any checked exception, it is discarded and the given fallback function is invoked.
        Type Parameters:
        E - The type of checked exception that can be thrown by the given fallback function.
        Parameters:
        fallback - The function to invoke if this function throws any checked exception.
        Returns:
        A function that invokes the fallback function if this function throws any checked exception.
        Throws:
        NullPointerException - If fallback is null.
      • onErrorApplyUnchecked

        default BiFunction<T,​U,​R> onErrorApplyUnchecked​(BiFunction<? super T,​? super U,​? extends R> fallback)
        Returns a function that applies this function to its input. If this function throws any checked exception, it is discarded and the given fallback function is invoked.
        Parameters:
        fallback - The function to invoke if this function throws any checked exception.
        Returns:
        A function that invokes the fallback function if this function throws any checked exception.
        Throws:
        NullPointerException - If fallback is null.
      • onErrorGetChecked

        default <E extends ThrowableThrowingBiFunction<T,​U,​R,​E> onErrorGetChecked​(ThrowingSupplier<? extends R,​? extends E> fallback)
        Returns a function that applies this function to its input. If this function throws any checked exception, it is discarded and the given fallback supplier is invoked.
        Type Parameters:
        E - The type of checked exception that can be thrown by the given fallback supplier.
        Parameters:
        fallback - The supplier to produce the value to return if this function throws any checked exception.
        Returns:
        A function that invokes the fallback supplier if this function throws any checked exception.
        Throws:
        NullPointerException - If fallback is null.
      • onErrorGetUnchecked

        default BiFunction<T,​U,​R> onErrorGetUnchecked​(Supplier<? extends R> fallback)
        Returns a function that applies this function to its input. If this function throws any checked exception, it is discarded and the given fallback supplier is invoked.
        Parameters:
        fallback - The supplier to produce the value to return if this function throws any checked exception.
        Returns:
        A function that invokes the fallback supplier if this function throws any checked exception.
        Throws:
        NullPointerException - If fallback is null.
      • onErrorReturn

        default BiFunction<T,​U,​R> onErrorReturn​(R fallback)
        Returns a function that applies this function to its input. If this function throws any checked exception, it is discarded and the given fallback value is returned.
        Parameters:
        fallback - The value to return if this function throws any checked exception.
        Returns:
        A function that returns the fallback value if this function throws any checked exception.
      • of

        static <T,​U,​R,​X extends ThrowableThrowingBiFunction<T,​U,​R,​X> of​(ThrowingBiFunction<T,​U,​R,​X> function)
        Factory method for turning ThrowingBiFunction-shaped lambdas into ThrowingBiFunctions.
        Type Parameters:
        T - The type of the first argument to the function.
        U - The type of the second argument to the function.
        R - The type of the result of the function.
        X - The type of checked exception that can be thrown.
        Parameters:
        function - The lambda to return as ThrowingBiFunction.
        Returns:
        The given lambda as a ThrowingBiFunction.
        Throws:
        NullPointerException - If function is null.
      • unchecked

        static <T,​U,​R> BiFunction<T,​U,​R> unchecked​(ThrowingBiFunction<? super T,​? super U,​? extends R,​?> function)
        Returns a function that applies the function function to its input. Any checked exception thrown by the function function is wrapped in an UncheckedException.
        Type Parameters:
        T - The type of the first argument to the function.
        U - The type of the second argument to the function.
        R - The type of the result of the function.
        Parameters:
        function - The function to apply when the returned function is applied.
        Returns:
        A function that wraps any checked exception in an UncheckedException.
        Throws:
        NullPointerException - If function is null.
      • checked

        static <T,​U,​R,​X extends ThrowableThrowingBiFunction<T,​U,​R,​X> checked​(BiFunction<? super T,​? super U,​? extends R> function)
        Returns a function that applies the function function to its input. Any unchecked exception thrown by the function function is relayed to the caller. This method allows existing BiFunction instances to be used where ThrowingBiFunction is expected.
        Type Parameters:
        T - The type of the first argument to the function.
        U - The type of the second argument to the function.
        R - The type of the result of the function.
        X - The type of checked exception that can be thrown.
        Parameters:
        function - The function to apply when the returned function is applied.
        Returns:
        A function that wraps any checked exception in an UncheckedException.
        Throws:
        NullPointerException - If function is null.
      • checked

        static <T,​U,​R,​X extends ThrowableThrowingBiFunction<T,​U,​R,​X> checked​(BiFunction<? super T,​? super U,​? extends R> function,
                                                                                                                   Class<X> errorType)
        Returns a function that applies the function function to its input. Any UncheckedException thrown by the function function is unwrapped if its cause is an instance of errorType, otherwise it is relayed to the caller.
        Type Parameters:
        T - The type of the first argument to the function.
        U - The type of the second argument to the function.
        R - The type of the result of the function.
        X - The type of checked exception that can be thrown.
        Parameters:
        function - The function to apply when the returned function is applied.
        errorType - The type of checked exception that can be thrown.
        Returns:
        A function that wraps any checked exception in an UncheckedException.
        Throws:
        NullPointerException - If function or errorType is null.