# Interface FailableBiFunction<T, U, R, E extends Throwable>

Type Parameters:
  `T` - Input type 1.
  `U` - Input type 2.
  `R` - Return type.
  `E` - The kind of thrown exception or error.

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 FailableBiFunction<T, U, R, E extends Throwable>
A functional interface like `BiFunction` that declares a `Throwable`.

Since:
  3.11

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final FailableBiFunction`
  `NOP`
  NOP singleton

- ## Method Summary

  Modifier and Type
  Method
  Description
  `default <V> FailableBiFunction<T,U,V,E>`
  `andThen(FailableFunction<? super R, ? extends V, E> after)`
  Returns a composed `FailableBiFunction` that like `BiFunction.andThen(Function)`.
  `R`
  `apply(T input1, U input2)`
  Applies this function.
  `static <T, U, R, E extends Throwable>
  FailableBiFunction<T,U,R,E>`
  `nop()`
  Gets the NOP singleton.

- ## Field Details

  - ### NOP

    static final FailableBiFunction NOP
    NOP singleton

- ## Method Details

  - ### nop

    static <T, U, R, E extends Throwable> FailableBiFunction<T,U,R,E> nop()
    Gets the NOP singleton.
    Type Parameters:
      `T` - Consumed type 1.
      `U` - Consumed type 2.
      `R` - Return type.
      `E` - The kind of thrown exception or error.
    Returns:
      The NOP singleton.

  - ### andThen

    default <V> FailableBiFunction<T,U,V,E> andThen(FailableFunction<? super R, ? extends V, E> after)
    Returns a composed `FailableBiFunction` that like `BiFunction.andThen(Function)`.
    Type Parameters:
      `V` - the output type of the `after` function, and of the composed function.
    Parameters:
      `after` - the operation to perform after this one.
    Returns:
      a composed `FailableBiFunction` that like `BiFunction.andThen(Function)`.
    Throws:
      `NullPointerException` - when `after` is null.

  - ### apply

    R apply(T input1, U input2) throws E
    Applies this function.
    Parameters:
      `input1` - the first input for the function
      `input2` - the second input for the function
    Returns:
      the result of the function
    Throws:
      `E` - Thrown when the function fails.