Package org.springframework.util.function

# Interface ThrowingSupplier<T>

Type Parameters:
  `T` - the type of results supplied by this supplier

All Superinterfaces:
  `Supplier<T>`

public interface ThrowingSupplier<T> extends Supplier<T>
A `Supplier` that allows invocation of code that throws a checked exception.

Since:
  6.0
Author:
  Stephane Nicoll, Phillip Webb

## Method Summary

Modifier and Type
Method
Description
`default T`
`get()`
Default `Supplier.get()` that wraps any thrown checked exceptions (by default in a `RuntimeException`).
`default T`
`get(BiFunction<String,Exception,RuntimeException> exceptionWrapper)`
Gets a result, wrapping any thrown checked exceptions using the given `exceptionWrapper`.
`T`
`getWithException()`
Gets a result, possibly throwing a checked exception.
`static <T> ThrowingSupplier<T>`
`of(ThrowingSupplier<T> supplier)`
Lambda friendly convenience method that can be used to create a `ThrowingSupplier` where the `get()` method wraps any checked exception thrown by the supplied lambda expression or method reference.
`static <T> ThrowingSupplier<T>`
`of(ThrowingSupplier<T> supplier, BiFunction<String,Exception,RuntimeException> exceptionWrapper)`
Lambda friendly convenience method that can be used to create `ThrowingSupplier` where the `get()` method wraps any thrown checked exceptions using the given `exceptionWrapper`.
`default ThrowingSupplier<T>`
`throwing(BiFunction<String,Exception,RuntimeException> exceptionWrapper)`
Return a new `ThrowingSupplier` where the `get()` method wraps any thrown checked exceptions using the given `exceptionWrapper`.

## Method Details

### getWithException

T getWithException() throws Exception
Gets a result, possibly throwing a checked exception.

Returns:
  a result
Throws:
  `Exception` - on error

### get

default T get()
Default `Supplier.get()` that wraps any thrown checked exceptions (by default in a `RuntimeException`).

Specified by:
  `get` in interface `Supplier<T>`
See Also:
  - `Supplier.get()`

### get

default T get(BiFunction<String,Exception,RuntimeException> exceptionWrapper)
Gets a result, wrapping any thrown checked exceptions using the given `exceptionWrapper`.

Parameters:
  `exceptionWrapper` - `BiFunction` that wraps the given message and checked exception into a runtime exception
Returns:
  a result

### throwing

default ThrowingSupplier<T> throwing(BiFunction<String,Exception,RuntimeException> exceptionWrapper)
Return a new `ThrowingSupplier` where the `get()` method wraps any thrown checked exceptions using the given `exceptionWrapper`.

Parameters:
  `exceptionWrapper` - `BiFunction` that wraps the given message and checked exception into a runtime exception
Returns:
  the replacement `ThrowingSupplier` instance

### of

static <T> ThrowingSupplier<T> of(ThrowingSupplier<T> supplier)
Lambda friendly convenience method that can be used to create a `ThrowingSupplier` where the `get()` method wraps any checked exception thrown by the supplied lambda expression or method reference.

This method can be especially useful when working with method references. It allows you to easily convert a method that throws a checked exception into an instance compatible with a regular `Supplier`.

For example:

     optional.orElseGet(ThrowingSupplier.of(Example::methodThatCanThrowCheckedException));

Type Parameters:
  `T` - the type of results supplied by this supplier
Parameters:
  `supplier` - the source supplier
Returns:
  a new `ThrowingSupplier` instance

### of

static <T> ThrowingSupplier<T> of(ThrowingSupplier<T> supplier, BiFunction<String,Exception,RuntimeException> exceptionWrapper)
Lambda friendly convenience method that can be used to create `ThrowingSupplier` where the `get()` method wraps any thrown checked exceptions using the given `exceptionWrapper`.

This method can be especially useful when working with method references. It allows you to easily convert a method that throws a checked exception into an instance compatible with a regular `Supplier`.

For example:

     optional.orElseGet(ThrowingSupplier.of(Example::methodThatCanThrowCheckedException, IllegalStateException::new));

Type Parameters:
  `T` - the type of results supplied by this supplier
Parameters:
  `supplier` - the source supplier
  `exceptionWrapper` - the exception wrapper to use
Returns:
  a new `ThrowingSupplier` instance