T
- Value type in the case of success.public interface Try<T> extends Value<T>, Serializable
The following exceptions are considered to be fatal/non-recoverable:
Important note: Try may re-throw (undeclared) exceptions, e.g. on get()
. From within a
dynamic proxy InvocationHandler
this will lead to an
UndeclaredThrowableException
. For more information, please read
Dynamic Proxy Classes.
Modifier and Type | Interface and Description |
---|---|
static class |
Try.Failure<T>
A failed Try.
|
static class |
Try.Success<T>
A succeeded Try.
|
static class |
Try.WithResources1<T1 extends AutoCloseable>
A
Try -with-resources builder that operates on one AutoCloseable resource. |
static class |
Try.WithResources2<T1 extends AutoCloseable,T2 extends AutoCloseable>
A
Try -with-resources builder that operates on two AutoCloseable resources. |
static class |
Try.WithResources3<T1 extends AutoCloseable,T2 extends AutoCloseable,T3 extends AutoCloseable>
A
Try -with-resources builder that operates on three AutoCloseable resources. |
static class |
Try.WithResources4<T1 extends AutoCloseable,T2 extends AutoCloseable,T3 extends AutoCloseable,T4 extends AutoCloseable>
A
Try -with-resources builder that operates on four AutoCloseable resources. |
static class |
Try.WithResources5<T1 extends AutoCloseable,T2 extends AutoCloseable,T3 extends AutoCloseable,T4 extends AutoCloseable,T5 extends AutoCloseable>
A
Try -with-resources builder that operates on five AutoCloseable resources. |
static class |
Try.WithResources6<T1 extends AutoCloseable,T2 extends AutoCloseable,T3 extends AutoCloseable,T4 extends AutoCloseable,T5 extends AutoCloseable,T6 extends AutoCloseable>
A
Try -with-resources builder that operates on six AutoCloseable resources. |
static class |
Try.WithResources7<T1 extends AutoCloseable,T2 extends AutoCloseable,T3 extends AutoCloseable,T4 extends AutoCloseable,T5 extends AutoCloseable,T6 extends AutoCloseable,T7 extends AutoCloseable>
A
Try -with-resources builder that operates on seven AutoCloseable resources. |
static class |
Try.WithResources8<T1 extends AutoCloseable,T2 extends AutoCloseable,T3 extends AutoCloseable,T4 extends AutoCloseable,T5 extends AutoCloseable,T6 extends AutoCloseable,T7 extends AutoCloseable,T8 extends AutoCloseable>
A
Try -with-resources builder that operates on eight AutoCloseable resources. |
Modifier and Type | Field and Description |
---|---|
static long |
serialVersionUID |
Modifier and Type | Method and Description |
---|---|
default Try<T> |
andFinally(Runnable runnable)
Provides try's finally behavior no matter what the result of the operation is.
|
default Try<T> |
andFinallyTry(CheckedRunnable runnable)
Provides try's finally behavior no matter what the result of the operation is.
|
default Try<T> |
andThen(Consumer<? super T> consumer)
Shortcut for
andThenTry(consumer::accept) , see andThenTry(CheckedConsumer) . |
default Try<T> |
andThen(Runnable runnable)
Shortcut for
andThenTry(runnable::run) , see andThenTry(CheckedRunnable) . |
default Try<T> |
andThenTry(CheckedConsumer<? super T> consumer)
Passes the result to the given
consumer if this is a Success . |
default Try<T> |
andThenTry(CheckedRunnable runnable)
Runs the given runnable if this is a
Success , otherwise returns this Failure . |
default <R> Try<R> |
collect(PartialFunction<? super T,? extends R> partialFunction)
Collects value that is in the domain of the given
partialFunction by mapping the value to type R . |
boolean |
equals(Object o)
Clarifies that values have a proper equals() method implemented.
|
default Try<Throwable> |
failed()
Returns
Success(throwable) if this is a Failure(throwable) , otherwise
a Failure(new NoSuchElementException("Success.failed()")) if this is a Success. |
static <T> Try<T> |
failure(Throwable exception)
Creates a
Try.Failure that contains the given exception . |
default Try<T> |
filter(Predicate<? super T> predicate)
Shortcut for
filterTry(predicate::test) , see filterTry(CheckedPredicate) }. |
default Try<T> |
filter(Predicate<? super T> predicate,
Function<? super T,? extends Throwable> errorProvider)
Shortcut for
filterTry(predicate::test, errorProvider::apply) , see
filterTry(CheckedPredicate, CheckedFunction1) }. |
default Try<T> |
filter(Predicate<? super T> predicate,
Supplier<? extends Throwable> throwableSupplier)
Shortcut for
filterTry(predicate::test, throwableSupplier) , see
filterTry(CheckedPredicate, Supplier) }. |
default Try<T> |
filterTry(CheckedPredicate<? super T> predicate)
Returns
this if this is a Failure or this is a Success and the value satisfies the predicate. |
default Try<T> |
filterTry(CheckedPredicate<? super T> predicate,
CheckedFunction1<? super T,? extends Throwable> errorProvider)
Returns
this if this is a Failure or this is a Success and the value satisfies the predicate. |
default Try<T> |
filterTry(CheckedPredicate<? super T> predicate,
Supplier<? extends Throwable> throwableSupplier)
Returns
this if this is a Failure or this is a Success and the value satisfies the predicate. |
default <U> Try<U> |
flatMap(Function<? super T,? extends Try<? extends U>> mapper)
Shortcut for
flatMapTry(mapper::apply) , see flatMapTry(CheckedFunction1) . |
default <U> Try<U> |
flatMapTry(CheckedFunction1<? super T,? extends Try<? extends U>> mapper)
FlatMaps the value of a Success or returns a Failure.
|
default <X> X |
fold(Function<? super Throwable,? extends X> ifFail,
Function<? super T,? extends X> f)
Folds either the
Failure or the Success side of the Try value. |
T |
get()
Gets the result of this Try if this is a
Success or throws if this is a Failure . |
Throwable |
getCause()
Gets the cause if this is a Failure or throws if this is a Success.
|
default T |
getOrElseGet(Function<? super Throwable,? extends T> other) |
default <X extends Throwable> |
getOrElseThrow(Function<? super Throwable,X> exceptionProvider) |
int |
hashCode()
Clarifies that values have a proper hashCode() method implemented.
|
default boolean |
isAsync()
A
Try 's value is computed synchronously. |
boolean |
isEmpty()
Checks whether this Try has no result, i.e.
|
boolean |
isFailure()
Checks if this is a Failure.
|
default boolean |
isLazy()
A
Try 's value is computed eagerly. |
default boolean |
isSingleValued()
A
Try is a single-valued. |
boolean |
isSuccess()
Checks if this is a Success.
|
default Iterator<T> |
iterator()
Returns a rich
io.vavr.collection.Iterator . |
default <U> Try<U> |
map(Function<? super T,? extends U> mapper)
Shortcut for
mapTry(mapper::apply) , see mapTry(CheckedFunction1) . |
default Try<T> |
mapFailure(API.Match.Case<? extends Throwable,? extends Throwable>... cases)
Maps the cause to a new exception if this is a
Failure or returns this instance if this is a Success . |
default <U> Try<U> |
mapTry(CheckedFunction1<? super T,? extends U> mapper)
Runs the given checked function if this is a
Try.Success ,
passing the result of the current expression to it. |
static <T> Try<T> |
narrow(Try<? extends T> t)
Narrows a widened
Try<? extends T> to Try<T>
by performing a type-safe cast. |
static <T> Try<T> |
of(CheckedFunction0<? extends T> supplier)
Creates a Try of a CheckedFunction0.
|
static <T> Try<T> |
ofCallable(Callable<? extends T> callable)
Creates a Try of a Callable.
|
static <T> Try<T> |
ofSupplier(Supplier<? extends T> supplier)
Creates a Try of a Supplier.
|
default <X extends Throwable> |
onFailure(Class<X> exceptionType,
Consumer<? super X> action)
Consumes the cause if this is a
Try.Failure and the cause is instance of X . |
default Try<T> |
onFailure(Consumer<? super Throwable> action)
Consumes the cause if this is a
Try.Failure . |
default Try<T> |
onSuccess(Consumer<? super T> action)
Consumes the value if this is a
Try.Success . |
default Try<T> |
orElse(Supplier<? extends Try<? extends T>> supplier) |
default Try<T> |
orElse(Try<? extends T> other) |
default void |
orElseRun(Consumer<? super Throwable> action) |
default Try<T> |
peek(Consumer<? super T> action)
Applies the action to the value of a Success or does nothing in the case of a Failure.
|
default <X extends Throwable> |
recover(Class<X> exceptionType,
Function<? super X,? extends T> f)
Returns
this , if this is a Success or this is a Failure and the cause is not assignable
from cause.getClass() . |
default <X extends Throwable> |
recover(Class<X> exceptionType,
T value)
Returns
this , if this is a Try.Success or this is a Failure and the cause is not assignable
from cause.getClass() . |
default Try<T> |
recover(Function<? super Throwable,? extends T> f)
Returns
this , if this is a Success , otherwise tries to recover the exception of the failure with f ,
i.e. |
default <X extends Throwable> |
recoverWith(Class<X> exceptionType,
Function<? super X,Try<? extends T>> f)
Returns
this , if this is a Success or this is a Failure and the cause is not assignable
from cause.getClass() . |
default <X extends Throwable> |
recoverWith(Class<X> exceptionType,
Try<? extends T> recovered)
Recovers this
Try with the given recovered , if this is a Try.Failure
and the given exceptionType is assignable to the underlying cause type. |
default Try<T> |
recoverWith(Function<? super Throwable,? extends Try<? extends T>> f)
Returns
this , if this is a Success, otherwise tries to recover the exception of the failure with f ,
i.e. |
static Try<Void> |
run(CheckedRunnable runnable)
Creates a Try of a CheckedRunnable.
|
static Try<Void> |
runRunnable(Runnable runnable)
Creates a Try of a Runnable.
|
static <T> Try<Seq<T>> |
sequence(Iterable<? extends Try<? extends T>> values)
Reduces many
Try s into a single Try by transforming an
Iterable<Try<? extends T>> into a Try<Seq<T>> . |
static <T> Try<T> |
success(T value)
Creates a
Try.Success that contains the given value . |
default Either<Throwable,T> |
toEither()
Converts this
Try to an Either . |
String |
toString()
Clarifies that values have a proper toString() method implemented.
|
default Validation<Throwable,T> |
toValidation()
Converts this
Try to a Validation . |
default <U> Validation<U,T> |
toValidation(Function<? super Throwable,? extends U> throwableMapper)
Converts this
Try to a Validation , converting the Throwable (if present)
to another object using passed Function . |
default <U> U |
transform(Function<? super Try<T>,? extends U> f)
Transforms this
Try . |
static <T,U> Try<Seq<U>> |
traverse(Iterable<? extends T> values,
Function<? super T,? extends Try<? extends U>> mapper)
Maps the values of an iterable to a sequence of mapped values into a single
Try by
transforming an Iterable<? extends T> into a Try<Seq<U>> . |
static <T1 extends AutoCloseable> |
withResources(CheckedFunction0<? extends T1> t1Supplier)
Creates a
Try -with-resources builder that operates on one AutoCloseable resource. |
static <T1 extends AutoCloseable,T2 extends AutoCloseable> |
withResources(CheckedFunction0<? extends T1> t1Supplier,
CheckedFunction0<? extends T2> t2Supplier)
Creates a
Try -with-resources builder that operates on two AutoCloseable resources. |
static <T1 extends AutoCloseable,T2 extends AutoCloseable,T3 extends AutoCloseable> |
withResources(CheckedFunction0<? extends T1> t1Supplier,
CheckedFunction0<? extends T2> t2Supplier,
CheckedFunction0<? extends T3> t3Supplier)
Creates a
Try -with-resources builder that operates on three AutoCloseable resources. |
static <T1 extends AutoCloseable,T2 extends AutoCloseable,T3 extends AutoCloseable,T4 extends AutoCloseable> |
withResources(CheckedFunction0<? extends T1> t1Supplier,
CheckedFunction0<? extends T2> t2Supplier,
CheckedFunction0<? extends T3> t3Supplier,
CheckedFunction0<? extends T4> t4Supplier)
Creates a
Try -with-resources builder that operates on four AutoCloseable resources. |
static <T1 extends AutoCloseable,T2 extends AutoCloseable,T3 extends AutoCloseable,T4 extends AutoCloseable,T5 extends AutoCloseable> |
withResources(CheckedFunction0<? extends T1> t1Supplier,
CheckedFunction0<? extends T2> t2Supplier,
CheckedFunction0<? extends T3> t3Supplier,
CheckedFunction0<? extends T4> t4Supplier,
CheckedFunction0<? extends T5> t5Supplier)
Creates a
Try -with-resources builder that operates on five AutoCloseable resources. |
static <T1 extends AutoCloseable,T2 extends AutoCloseable,T3 extends AutoCloseable,T4 extends AutoCloseable,T5 extends AutoCloseable,T6 extends AutoCloseable> |
withResources(CheckedFunction0<? extends T1> t1Supplier,
CheckedFunction0<? extends T2> t2Supplier,
CheckedFunction0<? extends T3> t3Supplier,
CheckedFunction0<? extends T4> t4Supplier,
CheckedFunction0<? extends T5> t5Supplier,
CheckedFunction0<? extends T6> t6Supplier)
Creates a
Try -with-resources builder that operates on six AutoCloseable resources. |
static <T1 extends AutoCloseable,T2 extends AutoCloseable,T3 extends AutoCloseable,T4 extends AutoCloseable,T5 extends AutoCloseable,T6 extends AutoCloseable,T7 extends AutoCloseable> |
withResources(CheckedFunction0<? extends T1> t1Supplier,
CheckedFunction0<? extends T2> t2Supplier,
CheckedFunction0<? extends T3> t3Supplier,
CheckedFunction0<? extends T4> t4Supplier,
CheckedFunction0<? extends T5> t5Supplier,
CheckedFunction0<? extends T6> t6Supplier,
CheckedFunction0<? extends T7> t7Supplier)
Creates a
Try -with-resources builder that operates on seven AutoCloseable resources. |
static <T1 extends AutoCloseable,T2 extends AutoCloseable,T3 extends AutoCloseable,T4 extends AutoCloseable,T5 extends AutoCloseable,T6 extends AutoCloseable,T7 extends AutoCloseable,T8 extends AutoCloseable> |
withResources(CheckedFunction0<? extends T1> t1Supplier,
CheckedFunction0<? extends T2> t2Supplier,
CheckedFunction0<? extends T3> t3Supplier,
CheckedFunction0<? extends T4> t4Supplier,
CheckedFunction0<? extends T5> t5Supplier,
CheckedFunction0<? extends T6> t6Supplier,
CheckedFunction0<? extends T7> t7Supplier,
CheckedFunction0<? extends T8> t8Supplier)
Creates a
Try -with-resources builder that operates on eight AutoCloseable resources. |
collect, collect, contains, corresponds, eq, exists, forAll, forEach, getOrElse, getOrElse, getOrElseThrow, getOrElseTry, getOrNull, narrow, out, out, spliterator, stderr, stdout, stringPrefix, toArray, toCharSeq, toCompletableFuture, toEither, toEither, toInvalid, toInvalid, toJavaArray, toJavaArray, toJavaArray, toJavaCollection, toJavaList, toJavaList, toJavaMap, toJavaMap, toJavaMap, toJavaOptional, toJavaParallelStream, toJavaSet, toJavaSet, toJavaStream, toLeft, toLeft, toLinkedMap, toLinkedMap, toLinkedSet, toList, toMap, toMap, toOption, toPriorityQueue, toPriorityQueue, toQueue, toRight, toRight, toSet, toSortedMap, toSortedMap, toSortedMap, toSortedMap, toSortedSet, toSortedSet, toStream, toTree, toTree, toTry, toTry, toValid, toValid, toValidation, toValidation, toVector
static final long serialVersionUID
static <T> Try<T> of(CheckedFunction0<? extends T> supplier)
T
- Component typesupplier
- A checked supplierSuccess(supplier.apply())
if no exception occurs, otherwise Failure(throwable)
if an
exception occurs calling supplier.apply()
.static <T> Try<T> ofSupplier(Supplier<? extends T> supplier)
T
- Component typesupplier
- A supplierSuccess(supplier.get())
if no exception occurs, otherwise Failure(throwable)
if an
exception occurs calling supplier.get()
.static <T> Try<T> ofCallable(Callable<? extends T> callable)
T
- Component typecallable
- A callableSuccess(callable.call())
if no exception occurs, otherwise Failure(throwable)
if an
exception occurs calling callable.call()
.static Try<Void> run(CheckedRunnable runnable)
runnable
- A checked runnableSuccess(null)
if no exception occurs, otherwise Failure(throwable)
if an exception occurs
calling runnable.run()
.static Try<Void> runRunnable(Runnable runnable)
runnable
- A runnableSuccess(null)
if no exception occurs, otherwise Failure(throwable)
if an exception occurs
calling runnable.run()
.static <T> Try<Seq<T>> sequence(Iterable<? extends Try<? extends T>> values)
Try
s into a single Try
by transforming an
Iterable<Try<? extends T>>
into a Try<Seq<T>>
. If any of
the Try
s are Try.Failure
, then this returns a Try.Failure
.T
- type of the Trysvalues
- An Iterable
of Try
sTry
of a Seq
of resultsNullPointerException
- if values
is nullstatic <T,U> Try<Seq<U>> traverse(Iterable<? extends T> values, Function<? super T,? extends Try<? extends U>> mapper)
Try
by
transforming an Iterable<? extends T>
into a Try<Seq<U>>
.
T
- The type of the given values.U
- The mapped value type.values
- An Iterable
of values.mapper
- A mapper of values to TrysTry
of a Seq
of results.NullPointerException
- if values or f is null.static <T> Try<T> success(T value)
T
- Type of the given value
.value
- A value.Success
.static <T> Try<T> failure(Throwable exception)
T
- Component type of the Try
.exception
- An exception.Failure
.static <T> Try<T> narrow(Try<? extends T> t)
Try<? extends T>
to Try<T>
by performing a type-safe cast. This is eligible because immutable/read-only
collections are covariant.T
- Component type of the Try
.t
- A Try
.t
instance as narrowed type Try<T>
.default Try<T> andThen(Consumer<? super T> consumer)
andThenTry(consumer::accept)
, see andThenTry(CheckedConsumer)
.consumer
- A consumerTry
if this is a Failure
or the consumer succeeded, otherwise the
Failure
of the consumption.NullPointerException
- if consumer
is nulldefault Try<T> andThenTry(CheckedConsumer<? super T> consumer)
consumer
if this is a Success
.
The main use case is chaining checked functions using method references:
Try.of(() -> 100)
.andThen(i -> System.out.println(i));
consumer
- A checked consumerTry
if this is a Failure
or the consumer succeeded, otherwise the
Failure
of the consumption.NullPointerException
- if consumer
is nulldefault Try<T> andThen(Runnable runnable)
andThenTry(runnable::run)
, see andThenTry(CheckedRunnable)
.runnable
- A runnableTry
if this is a Failure
or the runnable succeeded, otherwise the
Failure
of the run.NullPointerException
- if runnable
is nulldefault Try<T> andThenTry(CheckedRunnable runnable)
Success
, otherwise returns this Failure
.
The main use case is chaining runnables using method references:
Try.run(A::methodRef).andThen(B::methodRef).andThen(C::methodRef);
Please note that these lines are semantically the same:
Try.run(this::doStuff)
.andThen(this::doMoreStuff)
.andThen(this::doEvenMoreStuff);
Try.run(() -> {
doStuff();
doMoreStuff();
doEvenMoreStuff();
});
runnable
- A checked runnableTry
if this is a Failure
or the runnable succeeded, otherwise the
Failure
of the run.NullPointerException
- if runnable
is nulldefault <R> Try<R> collect(PartialFunction<? super T,? extends R> partialFunction)
partialFunction
by mapping the value to type R
.
partialFunction.isDefinedAt(value)
If the element makes it through that filter, the mapped instance is wrapped in Try
R newValue = partialFunction.apply(value)
R
- The new value typepartialFunction
- A function that is not necessarily defined on value of this try.Try
instance containing value of type R
NullPointerException
- if partialFunction
is nulldefault Try<Throwable> failed()
Success(throwable)
if this is a Failure(throwable)
, otherwise
a Failure(new NoSuchElementException("Success.failed()"))
if this is a Success.default Try<T> filter(Predicate<? super T> predicate, Supplier<? extends Throwable> throwableSupplier)
filterTry(predicate::test, throwableSupplier)
, see
filterTry(CheckedPredicate, Supplier)
}.predicate
- A predicatethrowableSupplier
- A supplier of a throwableTry
instanceNullPointerException
- if predicate
or throwableSupplier
is nulldefault Try<T> filter(Predicate<? super T> predicate, Function<? super T,? extends Throwable> errorProvider)
filterTry(predicate::test, errorProvider::apply)
, see
filterTry(CheckedPredicate, CheckedFunction1)
}.predicate
- A predicateerrorProvider
- A function that provides some kind of Throwable for TTry
instanceNullPointerException
- if predicate
or errorProvider
is nulldefault Try<T> filter(Predicate<? super T> predicate)
filterTry(predicate::test)
, see filterTry(CheckedPredicate)
}.predicate
- A predicateTry
instanceNullPointerException
- if predicate
is nulldefault Try<T> filterTry(CheckedPredicate<? super T> predicate, Supplier<? extends Throwable> throwableSupplier)
this
if this is a Failure or this is a Success and the value satisfies the predicate.
Returns a new Failure, if this is a Success and the value does not satisfy the Predicate or an exception
occurs testing the predicate. The returned Failure wraps a Throwable instance provided by the given
throwableSupplier
.
predicate
- A checked predicatethrowableSupplier
- A supplier of a throwableTry
instanceNullPointerException
- if predicate
or throwableSupplier
is nulldefault Try<T> filterTry(CheckedPredicate<? super T> predicate, CheckedFunction1<? super T,? extends Throwable> errorProvider)
this
if this is a Failure or this is a Success and the value satisfies the predicate.
Returns a new Failure, if this is a Success and the value does not satisfy the Predicate or an exception
occurs testing the predicate. The returned Failure wraps a Throwable instance provided by the given
errorProvider
.
predicate
- A checked predicateerrorProvider
- A provider of a throwableTry
instanceNullPointerException
- if predicate
or errorProvider
is nulldefault Try<T> filterTry(CheckedPredicate<? super T> predicate)
this
if this is a Failure or this is a Success and the value satisfies the predicate.
Returns a new Failure, if this is a Success and the value does not satisfy the Predicate or an exception
occurs testing the predicate. The returned Failure wraps a NoSuchElementException
instance.
predicate
- A checked predicateTry
instanceNullPointerException
- if predicate
is nulldefault <U> Try<U> flatMap(Function<? super T,? extends Try<? extends U>> mapper)
flatMapTry(mapper::apply)
, see flatMapTry(CheckedFunction1)
.U
- The new component typemapper
- A mapperTry
NullPointerException
- if mapper
is nulldefault <U> Try<U> flatMapTry(CheckedFunction1<? super T,? extends Try<? extends U>> mapper)
U
- The new component typemapper
- A mapperTry
NullPointerException
- if mapper
is nullT get()
Success
or throws if this is a Failure
.
IMPORTANT! If this is a Try.Failure
, the underlying cause
of type Throwable
is thrown.
The thrown exception is exactly the same as the result of getCause()
.
Throwable getCause()
UnsupportedOperationException
- if this is a Successdefault boolean isAsync()
Try
's value is computed synchronously.boolean isEmpty()
boolean isFailure()
default boolean isLazy()
Try
's value is computed eagerly.default boolean isSingleValued()
Try
is a single-valued.isSingleValued
in interface Value<T>
true
boolean isSuccess()
default Iterator<T> iterator()
Value
io.vavr.collection.Iterator
.default <U> Try<U> map(Function<? super T,? extends U> mapper)
mapTry(mapper::apply)
, see mapTry(CheckedFunction1)
.map
in interface Value<T>
U
- The new component typemapper
- A checked functionTry
NullPointerException
- if mapper
is null@GwtIncompatible default Try<T> mapFailure(API.Match.Case<? extends Throwable,? extends Throwable>... cases)
Failure
or returns this instance if this is a Success
.
If none of the given cases matches the cause, the same Failure
is returned.
cases
- A not necessarily exhaustive sequence of cases that will be matched against a cause.Try
if this is a Failure
, otherwise this.default <U> Try<U> mapTry(CheckedFunction1<? super T,? extends U> mapper)
Try.Success
,
passing the result of the current expression to it.
If this expression is a Try.Failure
then it'll return a new
Try.Failure
of type R with the original exception.
The main use case is chaining checked functions using method references:
Try.of(() -> 0)
.map(x -> 1 / x); // division by zero
U
- The new component typemapper
- A checked functionTry
NullPointerException
- if mapper
is nulldefault Try<T> onFailure(Consumer<? super Throwable> action)
Try.Failure
.
// (does not print anything)
Try.success(1).onFailure(System.out::println);
// prints "java.lang.Error"
Try.failure(new Error()).onFailure(System.out::println);
action
- An exception consumerNullPointerException
- if action
is null@GwtIncompatible default <X extends Throwable> Try<T> onFailure(Class<X> exceptionType, Consumer<? super X> action)
Try.Failure
and the cause is instance of X
.
// (does not print anything)
Try.success(1).onFailure(Error.class, System.out::println);
// prints "Error"
Try.failure(new Error())
.onFailure(RuntimeException.class, x -> System.out.println("Runtime exception"))
.onFailure(Error.class, x -> System.out.println("Error"));
X
- the exception type that should be handledexceptionType
- the exception type that is handledaction
- an excpetion consumerNullPointerException
- if exceptionType
or action
is nulldefault Try<T> onSuccess(Consumer<? super T> action)
Try.Success
.
// prints "1"
Try.success(1).onSuccess(System.out::println);
// (does not print anything)
Try.failure(new Error()).onSuccess(System.out::println);
action
- A value consumerNullPointerException
- if action
is nulldefault <X extends Throwable> T getOrElseThrow(Function<? super Throwable,X> exceptionProvider) throws X extends Throwable
X extends Throwable
default <X> X fold(Function<? super Throwable,? extends X> ifFail, Function<? super T,? extends X> f)
Failure
or the Success
side of the Try value.X
- type of the folded valueifFail
- maps the left value if this is a Failure
f
- maps the value if this is a Success
default Try<T> peek(Consumer<? super T> action)
peek
in interface Value<T>
action
- A ConsumerTry
NullPointerException
- if action
is null@GwtIncompatible default <X extends Throwable> Try<T> recover(Class<X> exceptionType, Function<? super X,? extends T> f)
this
, if this is a Success
or this is a Failure
and the cause is not assignable
from cause.getClass()
. Otherwise tries to recover the exception of the failure with f
,
i.e. calling Try.of(() -> f.apply((X) getCause())
.
// = Success(13)
Try.of(() -> 27/2).recover(ArithmeticException.class, x -> Integer.MAX_VALUE);
// = Success(2147483647)
Try.of(() -> 1/0)
.recover(Error.class, x -> -1)
.recover(ArithmeticException.class, x -> Integer.MAX_VALUE);
// = Failure(java.lang.ArithmeticException: / by zero)
Try.of(() -> 1/0).recover(Error.class, x -> Integer.MAX_VALUE);
X
- Exception typeexceptionType
- The specific exception type that should be handledf
- A recovery function taking an exception of type X
Try
NullPointerException
- if exception
is null or f
is null@GwtIncompatible default <X extends Throwable> Try<T> recoverWith(Class<X> exceptionType, Function<? super X,Try<? extends T>> f)
this
, if this is a Success
or this is a Failure
and the cause is not assignable
from cause.getClass()
. Otherwise tries to recover the exception of the failure with f
which returns Try.
If isFailure()
returned by f
function is true
it means that recovery cannot take place due to some circumstances.
// = Success(13)
Try.of(() -> 27/2).recoverWith(ArithmeticException.class, x -> Try.success(Integer.MAX_VALUE));
// = Success(2147483647)
Try.of(() -> 1/0)
.recoverWith(Error.class, x -> Try.success(-1))
.recoverWith(ArithmeticException.class, x -> Try.success(Integer.MAX_VALUE));
// = Failure(java.lang.ArithmeticException: / by zero)
Try.of(() -> 1/0).recoverWith(Error.class, x -> Try.success(Integer.MAX_VALUE));
X
- Exception typeexceptionType
- The specific exception type that should be handledf
- A recovery function taking an exception of type X
and returning Try as a result of recovery.
If Try is isSuccess()
then recovery ends up successfully. Otherwise the function was not able to recover.Try
NullPointerException
- if exceptionType
or f
is null@GwtIncompatible default <X extends Throwable> Try<T> recoverWith(Class<X> exceptionType, Try<? extends T> recovered)
Try
with the given recovered
, if this is a Try.Failure
and the given exceptionType
is assignable to the underlying cause type.
// = Success(13)
Try.of(() -> 27/2).recoverWith(ArithmeticException.class, Try.success(Integer.MAX_VALUE));
// = Success(2147483647)
Try.of(() -> 1/0)
.recoverWith(Error.class, Try.success(-1))
.recoverWith(ArithmeticException.class, Try.success(Integer.MAX_VALUE));
// = Failure(java.lang.ArithmeticException: / by zero)
Try.of(() -> 1/0).recoverWith(Error.class, Try.success(Integer.MAX_VALUE));
X
- type of the exception that should be recoveredexceptionType
- the exception type that is recoveredrecovered
- the substitute for a matching Failure
recovered
if this is a Try.Failure
and the cause is of type X
, else this
NullPointerException
- if exceptionType
or recovered
is null@GwtIncompatible default <X extends Throwable> Try<T> recover(Class<X> exceptionType, T value)
this
, if this is a Try.Success
or this is a Failure
and the cause is not assignable
from cause.getClass()
. Otherwise returns a Try.Success
containing the given value
.
// = Success(13)
Try.of(() -> 27/2).recover(ArithmeticException.class, Integer.MAX_VALUE);
// = Success(2147483647)
Try.of(() -> 1/0)
.recover(Error.class, -1);
.recover(ArithmeticException.class, Integer.MAX_VALUE);
// = Failure(java.lang.ArithmeticException: / by zero)
Try.of(() -> 1/0).recover(Error.class, Integer.MAX_VALUE);
X
- Exception typeexceptionType
- The specific exception type that should be handledvalue
- A value that is used in case of a recoveryTry
NullPointerException
- if exception
is nulldefault Try<T> recover(Function<? super Throwable,? extends T> f)
this
, if this is a Success
, otherwise tries to recover the exception of the failure with f
,
i.e. calling Try.of(() -> f.apply(throwable))
.
// = Success(13)
Try.of(() -> 27/2).recover(x -> Integer.MAX_VALUE);
// = Success(2147483647)
Try.of(() -> 1/0).recover(x -> Integer.MAX_VALUE);
f
- A recovery function taking a ThrowableTry
NullPointerException
- if f
is nulldefault Try<T> recoverWith(Function<? super Throwable,? extends Try<? extends T>> f)
this
, if this is a Success, otherwise tries to recover the exception of the failure with f
,
i.e. calling f.apply(cause.getCause())
. If an error occurs recovering a Failure, then the new Failure is
returned.
// = Success(13)
Try.of(() -> 27/2).recoverWith(x -> Try.success(Integer.MAX_VALUE));
// = Success(2147483647)
Try.of(() -> 1/0).recoverWith(x -> Try.success(Integer.MAX_VALUE));
f
- A recovery function taking a ThrowableTry
NullPointerException
- if f
is nulldefault Either<Throwable,T> toEither()
Try
to an Either
.Either
default Validation<Throwable,T> toValidation()
Try
to a Validation
.Validation
default <U> Validation<U,T> toValidation(Function<? super Throwable,? extends U> throwableMapper)
Try
to a Validation
, converting the Throwable (if present)
to another object using passed Function
.
Validation<String, Integer> = Try.of(() -> 1/0).toValidation(Throwable::getMessage));
U
- result type of the throwable mapperthrowableMapper
- A transformation from throwable to desired invalid type of new Validation
Validation
NullPointerException
- if the given throwableMapper
is null.default <U> U transform(Function<? super Try<T>,? extends U> f)
Try
.U
- Type of transformation resultf
- A transformationU
NullPointerException
- if f
is nulldefault Try<T> andFinally(Runnable runnable)
runnable
- A runnableTry
.NullPointerException
- if runnable
is nulldefault Try<T> andFinallyTry(CheckedRunnable runnable)
runnable
- A runnableTry
.NullPointerException
- if runnable
is nullboolean equals(Object o)
Value
int hashCode()
Value
See Object.hashCode().
String toString()
Value
See Object.toString().
static <T1 extends AutoCloseable> Try.WithResources1<T1> withResources(CheckedFunction0<? extends T1> t1Supplier)
Try
-with-resources builder that operates on one AutoCloseable
resource.T1
- Type of the 1st resource.t1Supplier
- The supplier of the first resource.Try.WithResources1
instance.static <T1 extends AutoCloseable,T2 extends AutoCloseable> Try.WithResources2<T1,T2> withResources(CheckedFunction0<? extends T1> t1Supplier, CheckedFunction0<? extends T2> t2Supplier)
Try
-with-resources builder that operates on two AutoCloseable
resources.T1
- Type of the 1st resource.T2
- Type of the 2nd resource.t1Supplier
- The supplier of the 1st resource.t2Supplier
- The supplier of the 2nd resource.Try.WithResources2
instance.static <T1 extends AutoCloseable,T2 extends AutoCloseable,T3 extends AutoCloseable> Try.WithResources3<T1,T2,T3> withResources(CheckedFunction0<? extends T1> t1Supplier, CheckedFunction0<? extends T2> t2Supplier, CheckedFunction0<? extends T3> t3Supplier)
Try
-with-resources builder that operates on three AutoCloseable
resources.T1
- Type of the 1st resource.T2
- Type of the 2nd resource.T3
- Type of the 3rd resource.t1Supplier
- The supplier of the 1st resource.t2Supplier
- The supplier of the 2nd resource.t3Supplier
- The supplier of the 3rd resource.Try.WithResources3
instance.static <T1 extends AutoCloseable,T2 extends AutoCloseable,T3 extends AutoCloseable,T4 extends AutoCloseable> Try.WithResources4<T1,T2,T3,T4> withResources(CheckedFunction0<? extends T1> t1Supplier, CheckedFunction0<? extends T2> t2Supplier, CheckedFunction0<? extends T3> t3Supplier, CheckedFunction0<? extends T4> t4Supplier)
Try
-with-resources builder that operates on four AutoCloseable
resources.T1
- Type of the 1st resource.T2
- Type of the 2nd resource.T3
- Type of the 3rd resource.T4
- Type of the 4th resource.t1Supplier
- The supplier of the 1st resource.t2Supplier
- The supplier of the 2nd resource.t3Supplier
- The supplier of the 3rd resource.t4Supplier
- The supplier of the 4th resource.Try.WithResources4
instance.static <T1 extends AutoCloseable,T2 extends AutoCloseable,T3 extends AutoCloseable,T4 extends AutoCloseable,T5 extends AutoCloseable> Try.WithResources5<T1,T2,T3,T4,T5> withResources(CheckedFunction0<? extends T1> t1Supplier, CheckedFunction0<? extends T2> t2Supplier, CheckedFunction0<? extends T3> t3Supplier, CheckedFunction0<? extends T4> t4Supplier, CheckedFunction0<? extends T5> t5Supplier)
Try
-with-resources builder that operates on five AutoCloseable
resources.T1
- Type of the 1st resource.T2
- Type of the 2nd resource.T3
- Type of the 3rd resource.T4
- Type of the 4th resource.T5
- Type of the 5th resource.t1Supplier
- The supplier of the 1st resource.t2Supplier
- The supplier of the 2nd resource.t3Supplier
- The supplier of the 3rd resource.t4Supplier
- The supplier of the 4th resource.t5Supplier
- The supplier of the 5th resource.Try.WithResources5
instance.static <T1 extends AutoCloseable,T2 extends AutoCloseable,T3 extends AutoCloseable,T4 extends AutoCloseable,T5 extends AutoCloseable,T6 extends AutoCloseable> Try.WithResources6<T1,T2,T3,T4,T5,T6> withResources(CheckedFunction0<? extends T1> t1Supplier, CheckedFunction0<? extends T2> t2Supplier, CheckedFunction0<? extends T3> t3Supplier, CheckedFunction0<? extends T4> t4Supplier, CheckedFunction0<? extends T5> t5Supplier, CheckedFunction0<? extends T6> t6Supplier)
Try
-with-resources builder that operates on six AutoCloseable
resources.T1
- Type of the 1st resource.T2
- Type of the 2nd resource.T3
- Type of the 3rd resource.T4
- Type of the 4th resource.T5
- Type of the 5th resource.T6
- Type of the 6th resource.t1Supplier
- The supplier of the 1st resource.t2Supplier
- The supplier of the 2nd resource.t3Supplier
- The supplier of the 3rd resource.t4Supplier
- The supplier of the 4th resource.t5Supplier
- The supplier of the 5th resource.t6Supplier
- The supplier of the 6th resource.Try.WithResources6
instance.static <T1 extends AutoCloseable,T2 extends AutoCloseable,T3 extends AutoCloseable,T4 extends AutoCloseable,T5 extends AutoCloseable,T6 extends AutoCloseable,T7 extends AutoCloseable> Try.WithResources7<T1,T2,T3,T4,T5,T6,T7> withResources(CheckedFunction0<? extends T1> t1Supplier, CheckedFunction0<? extends T2> t2Supplier, CheckedFunction0<? extends T3> t3Supplier, CheckedFunction0<? extends T4> t4Supplier, CheckedFunction0<? extends T5> t5Supplier, CheckedFunction0<? extends T6> t6Supplier, CheckedFunction0<? extends T7> t7Supplier)
Try
-with-resources builder that operates on seven AutoCloseable
resources.T1
- Type of the 1st resource.T2
- Type of the 2nd resource.T3
- Type of the 3rd resource.T4
- Type of the 4th resource.T5
- Type of the 5th resource.T6
- Type of the 6th resource.T7
- Type of the 7th resource.t1Supplier
- The supplier of the 1st resource.t2Supplier
- The supplier of the 2nd resource.t3Supplier
- The supplier of the 3rd resource.t4Supplier
- The supplier of the 4th resource.t5Supplier
- The supplier of the 5th resource.t6Supplier
- The supplier of the 6th resource.t7Supplier
- The supplier of the 7th resource.Try.WithResources7
instance.static <T1 extends AutoCloseable,T2 extends AutoCloseable,T3 extends AutoCloseable,T4 extends AutoCloseable,T5 extends AutoCloseable,T6 extends AutoCloseable,T7 extends AutoCloseable,T8 extends AutoCloseable> Try.WithResources8<T1,T2,T3,T4,T5,T6,T7,T8> withResources(CheckedFunction0<? extends T1> t1Supplier, CheckedFunction0<? extends T2> t2Supplier, CheckedFunction0<? extends T3> t3Supplier, CheckedFunction0<? extends T4> t4Supplier, CheckedFunction0<? extends T5> t5Supplier, CheckedFunction0<? extends T6> t6Supplier, CheckedFunction0<? extends T7> t7Supplier, CheckedFunction0<? extends T8> t8Supplier)
Try
-with-resources builder that operates on eight AutoCloseable
resources.T1
- Type of the 1st resource.T2
- Type of the 2nd resource.T3
- Type of the 3rd resource.T4
- Type of the 4th resource.T5
- Type of the 5th resource.T6
- Type of the 6th resource.T7
- Type of the 7th resource.T8
- Type of the 8th resource.t1Supplier
- The supplier of the 1st resource.t2Supplier
- The supplier of the 2nd resource.t3Supplier
- The supplier of the 3rd resource.t4Supplier
- The supplier of the 4th resource.t5Supplier
- The supplier of the 5th resource.t6Supplier
- The supplier of the 6th resource.t7Supplier
- The supplier of the 7th resource.t8Supplier
- The supplier of the 8th resource.Try.WithResources8
instance.Copyright © 2020. All Rights Reserved.