Interface Try<T>
- Type Parameters:
T
- Value type in the case of success.
- All Superinterfaces:
Iterable<T>
,Serializable
,Value<T>
- All Known Implementing Classes:
Try.Failure
,Try.Success
The following exceptions are considered to be fatal/non-recoverable:
- InterruptedException
- LinkageError
- ThreadDeath
- VirtualMachineError (i.e. OutOfMemoryError or StackOverflowError)
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.
- Author:
- Daniel Dietrich
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic final class
A failed Try.static final class
A succeeded Try.static final class
Try.WithResources1<T1 extends AutoCloseable>
ATry
-with-resources builder that operates on oneAutoCloseable
resource.static final class
Try.WithResources2<T1 extends AutoCloseable,
T2 extends AutoCloseable> ATry
-with-resources builder that operates on twoAutoCloseable
resources.static final class
Try.WithResources3<T1 extends AutoCloseable,
T2 extends AutoCloseable, T3 extends AutoCloseable> ATry
-with-resources builder that operates on threeAutoCloseable
resources.static final class
Try.WithResources4<T1 extends AutoCloseable,
T2 extends AutoCloseable, T3 extends AutoCloseable, T4 extends AutoCloseable> ATry
-with-resources builder that operates on fourAutoCloseable
resources.static final class
Try.WithResources5<T1 extends AutoCloseable,
T2 extends AutoCloseable, T3 extends AutoCloseable, T4 extends AutoCloseable, T5 extends AutoCloseable> ATry
-with-resources builder that operates on fiveAutoCloseable
resources.static final class
Try.WithResources6<T1 extends AutoCloseable,
T2 extends AutoCloseable, T3 extends AutoCloseable, T4 extends AutoCloseable, T5 extends AutoCloseable, T6 extends AutoCloseable> ATry
-with-resources builder that operates on sixAutoCloseable
resources.static final class
Try.WithResources7<T1 extends AutoCloseable,
T2 extends AutoCloseable, T3 extends AutoCloseable, T4 extends AutoCloseable, T5 extends AutoCloseable, T6 extends AutoCloseable, T7 extends AutoCloseable> ATry
-with-resources builder that operates on sevenAutoCloseable
resources.static final 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> ATry
-with-resources builder that operates on eightAutoCloseable
resources. -
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionandFinally
(Runnable runnable) Provides try's finally behavior no matter what the result of the operation is.andFinallyTry
(CheckedRunnable runnable) Provides try's finally behavior no matter what the result of the operation is.Shortcut forandThenTry(runnable::run)
, seeandThenTry(CheckedRunnable)
.Shortcut forandThenTry(consumer::accept)
, seeandThenTry(CheckedConsumer)
.andThenTry
(CheckedConsumer<? super T> consumer) Passes the result to the givenconsumer
if this is aSuccess
.andThenTry
(CheckedRunnable runnable) Runs the given runnable if this is aSuccess
, otherwise returns thisFailure
.default <R> Try
<R> collect
(PartialFunction<? super T, ? extends R> partialFunction) Collects value that is in the domain of the givenpartialFunction
by mapping the value to typeR
.boolean
Clarifies that values have a proper equals() method implemented.failed()
ReturnsSuccess(throwable)
if this is aFailure(throwable)
, otherwise aFailure(new NoSuchElementException("Success.failed()"))
if this is a Success.static <T> Try
<T> Creates aTry.Failure
that contains the givenexception
.Shortcut forfilterTry(predicate::test)
, seefilterTry(CheckedPredicate)
}.Shortcut forfilterTry(predicate::test, errorProvider::apply)
, seefilterTry(CheckedPredicate, CheckedFunction1)
}.Shortcut forfilterTry(predicate::test, throwableSupplier)
, seefilterTry(CheckedPredicate, Supplier)
}.filterTry
(CheckedPredicate<? super T> predicate) Returnsthis
if this is a Failure or this is a Success and the value satisfies the predicate.filterTry
(CheckedPredicate<? super T> predicate, CheckedFunction1<? super T, ? extends Throwable> errorProvider) Returnsthis
if this is a Failure or this is a Success and the value satisfies the predicate.filterTry
(CheckedPredicate<? super T> predicate, Supplier<? extends Throwable> throwableSupplier) Returnsthis
if this is a Failure or this is a Success and the value satisfies the predicate.default <U> Try
<U> Shortcut forflatMapTry(mapper::apply)
, seeflatMapTry(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
Folds either theFailure
or theSuccess
side of the Try value.get()
Gets the result of this Try if this is aSuccess
or throws if this is aFailure
.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) getOrElseThrow
(Function<? super Throwable, X> exceptionProvider) int
hashCode()
Clarifies that values have a proper hashCode() method implemented.default boolean
isAsync()
ATry
's value is computed synchronously.boolean
isEmpty()
Checks whether this Try has no result, i.e. is a Failure.boolean
Checks if this is a Failure.default boolean
isLazy()
ATry
's value is computed eagerly.default boolean
ATry
is a single-valued.boolean
Checks if this is a Success.iterator()
Returns a richio.vavr.collection.Iterator
.default <U> Try
<U> Shortcut formapTry(mapper::apply)
, seemapTry(CheckedFunction1)
.mapFailure
(API.Match.Case<? extends Throwable, ? extends Throwable>... cases) Maps the cause to a new exception if this is aFailure
or returns this instance if this is aSuccess
.default <U> Try
<U> mapTry
(CheckedFunction1<? super T, ? extends U> mapper) Runs the given checked function if this is aTry.Success
, passing the result of the current expression to it.static <T> Try
<T> Narrows a widenedTry<? extends T>
toTry<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.Consumes the cause if this is aTry.Failure
and the cause is instance ofX
.Consumes the cause if this is aTry.Failure
.Consumes the value if this is aTry.Success
.default void
Applies the action to the value of a Success or does nothing in the case of a Failure.Returnsthis
, if this is aSuccess
or this is aFailure
and the cause is not assignable fromcause.getClass()
.Returnsthis
, if this is aTry.Success
or this is aFailure
and the cause is not assignable fromcause.getClass()
.Returnsthis
, if this is aSuccess
, otherwise tries to recover the exception of the failure withf
, i.e. callingTry.of(() -> f.apply(throwable))
.recoverWith
(Class<X> exceptionType, Try<? extends T> recovered) Recovers thisTry
with the givenrecovered
, if this is aTry.Failure
and the givenexceptionType
is assignable to the underlying cause type.recoverWith
(Class<X> exceptionType, Function<? super X, Try<? extends T>> f) Returnsthis
, if this is aSuccess
or this is aFailure
and the cause is not assignable fromcause.getClass()
.recoverWith
(Function<? super Throwable, ? extends Try<? extends T>> f) Returnsthis
, if this is a Success, otherwise tries to recover the exception of the failure withf
, i.e. callingf.apply(cause.getCause())
.run
(CheckedRunnable runnable) Creates a Try of a CheckedRunnable.runRunnable
(Runnable runnable) Creates a Try of a Runnable.Reduces manyTry
s into a singleTry
by transforming anIterable<Try<? extends T>>
into aTry<Seq<T>>
.static <T> Try
<T> success
(T value) Creates aTry.Success
that contains the givenvalue
.toEither()
Converts thisTry
to anEither
.toString()
Clarifies that values have a proper toString() method implemented.default Validation
<Throwable, T> Converts thisTry
to aValidation
.default <U> Validation
<U, T> toValidation
(Function<? super Throwable, ? extends U> throwableMapper) Converts thisTry
to aValidation
, converting the Throwable (if present) to another object using passedFunction
.default <U> U
Transforms thisTry
.Maps the values of an iterable to a sequence of mapped values into a singleTry
by transforming anIterable<? extends T>
into aTry<Seq<U>>
.static <T1 extends AutoCloseable>
Try.WithResources1<T1> withResources
(CheckedFunction0<? extends T1> t1Supplier) Creates aTry
-with-resources builder that operates on oneAutoCloseable
resource.static <T1 extends AutoCloseable,
T2 extends AutoCloseable>
Try.WithResources2<T1, T2> withResources
(CheckedFunction0<? extends T1> t1Supplier, CheckedFunction0<? extends T2> t2Supplier) Creates aTry
-with-resources builder that operates on twoAutoCloseable
resources.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) Creates aTry
-with-resources builder that operates on threeAutoCloseable
resources.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) Creates aTry
-with-resources builder that operates on fourAutoCloseable
resources.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) Creates aTry
-with-resources builder that operates on fiveAutoCloseable
resources.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) Creates aTry
-with-resources builder that operates on sixAutoCloseable
resources.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) Creates aTry
-with-resources builder that operates on sevenAutoCloseable
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>
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) Creates aTry
-with-resources builder that operates on eightAutoCloseable
resources.Methods inherited from interface io.vavr.Value
collect, collect, contains, corresponds, eq, exists, forAll, forEach, getOrElse, getOrElse, getOrElseThrow, getOrElseTry, getOrNull, 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
-
Field Details
-
serialVersionUID
static final long serialVersionUID- See Also:
-
-
Method Details
-
of
Creates a Try of a CheckedFunction0.- Type Parameters:
T
- Component type- Parameters:
supplier
- A checked supplier- Returns:
Success(supplier.apply())
if no exception occurs, otherwiseFailure(throwable)
if an exception occurs callingsupplier.apply()
.
-
ofSupplier
Creates a Try of a Supplier.- Type Parameters:
T
- Component type- Parameters:
supplier
- A supplier- Returns:
Success(supplier.get())
if no exception occurs, otherwiseFailure(throwable)
if an exception occurs callingsupplier.get()
.
-
ofCallable
Creates a Try of a Callable.- Type Parameters:
T
- Component type- Parameters:
callable
- A callable- Returns:
Success(callable.call())
if no exception occurs, otherwiseFailure(throwable)
if an exception occurs callingcallable.call()
.
-
run
Creates a Try of a CheckedRunnable.- Parameters:
runnable
- A checked runnable- Returns:
Success(null)
if no exception occurs, otherwiseFailure(throwable)
if an exception occurs callingrunnable.run()
.
-
runRunnable
Creates a Try of a Runnable.- Parameters:
runnable
- A runnable- Returns:
Success(null)
if no exception occurs, otherwiseFailure(throwable)
if an exception occurs callingrunnable.run()
.
-
sequence
Reduces manyTry
s into a singleTry
by transforming anIterable<Try<? extends T>>
into aTry<Seq<T>>
. If any of theTry
s areTry.Failure
, then this returns aTry.Failure
.- Type Parameters:
T
- type of the Trys- Parameters:
values
- AnIterable
ofTry
s- Returns:
- A
Try
of aSeq
of results - Throws:
NullPointerException
- ifvalues
is null
-
traverse
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 singleTry
by transforming anIterable<? extends T>
into aTry<Seq<U>>
.- Type Parameters:
T
- The type of the given values.U
- The mapped value type.- Parameters:
values
- AnIterable
of values.mapper
- A mapper of values to Trys- Returns:
- A
Try
of aSeq
of results. - Throws:
NullPointerException
- if values or f is null.
-
success
- Type Parameters:
T
- Type of the givenvalue
.- Parameters:
value
- A value.- Returns:
- A new
Success
.
-
failure
- Type Parameters:
T
- Component type of theTry
.- Parameters:
exception
- An exception.- Returns:
- A new
Failure
.
-
narrow
Narrows a widenedTry<? extends T>
toTry<T>
by performing a type-safe cast. This is eligible because immutable/read-only collections are covariant.- Type Parameters:
T
- Component type of theTry
.- Parameters:
t
- ATry
.- Returns:
- the given
t
instance as narrowed typeTry<T>
.
-
andThen
Shortcut forandThenTry(consumer::accept)
, seeandThenTry(CheckedConsumer)
.- Parameters:
consumer
- A consumer- Returns:
- this
Try
if this is aFailure
or the consumer succeeded, otherwise theFailure
of the consumption. - Throws:
NullPointerException
- ifconsumer
is null
-
andThenTry
Passes the result to the givenconsumer
if this is aSuccess
.The main use case is chaining checked functions using method references:
Try.of(() -> 100) .andThen(i -> System.out.println(i));
- Parameters:
consumer
- A checked consumer- Returns:
- this
Try
if this is aFailure
or the consumer succeeded, otherwise theFailure
of the consumption. - Throws:
NullPointerException
- ifconsumer
is null
-
andThen
Shortcut forandThenTry(runnable::run)
, seeandThenTry(CheckedRunnable)
.- Parameters:
runnable
- A runnable- Returns:
- this
Try
if this is aFailure
or the runnable succeeded, otherwise theFailure
of the run. - Throws:
NullPointerException
- ifrunnable
is null
-
andThenTry
Runs the given runnable if this is aSuccess
, otherwise returns thisFailure
.The main use case is chaining runnables using method references:
Try.run(A::methodRef).andThen(B::methodRef).andThen(C::methodRef);
Try.run(this::doStuff) .andThen(this::doMoreStuff) .andThen(this::doEvenMoreStuff); Try.run(() -> { doStuff(); doMoreStuff(); doEvenMoreStuff(); });
- Parameters:
runnable
- A checked runnable- Returns:
- this
Try
if this is aFailure
or the runnable succeeded, otherwise theFailure
of the run. - Throws:
NullPointerException
- ifrunnable
is null
-
collect
Collects value that is in the domain of the givenpartialFunction
by mapping the value to typeR
.
If the element makes it through that filter, the mapped instance is wrapped inpartialFunction.isDefinedAt(value)
Try
R newValue = partialFunction.apply(value)
- Type Parameters:
R
- The new value type- Parameters:
partialFunction
- A function that is not necessarily defined on value of this try.- Returns:
- A new
Try
instance containing value of typeR
- Throws:
NullPointerException
- ifpartialFunction
is null
-
failed
ReturnsSuccess(throwable)
if this is aFailure(throwable)
, otherwise aFailure(new NoSuchElementException("Success.failed()"))
if this is a Success.- Returns:
- a new Try
-
filter
default Try<T> filter(Predicate<? super T> predicate, Supplier<? extends Throwable> throwableSupplier) Shortcut forfilterTry(predicate::test, throwableSupplier)
, seefilterTry(CheckedPredicate, Supplier)
}.- Parameters:
predicate
- A predicatethrowableSupplier
- A supplier of a throwable- Returns:
- a
Try
instance - Throws:
NullPointerException
- ifpredicate
orthrowableSupplier
is null
-
filter
default Try<T> filter(Predicate<? super T> predicate, Function<? super T, ? extends Throwable> errorProvider) Shortcut forfilterTry(predicate::test, errorProvider::apply)
, seefilterTry(CheckedPredicate, CheckedFunction1)
}.- Parameters:
predicate
- A predicateerrorProvider
- A function that provides some kind of Throwable for T- Returns:
- a
Try
instance - Throws:
NullPointerException
- ifpredicate
orerrorProvider
is null
-
filter
Shortcut forfilterTry(predicate::test)
, seefilterTry(CheckedPredicate)
}.- Parameters:
predicate
- A predicate- Returns:
- a
Try
instance - Throws:
NullPointerException
- ifpredicate
is null
-
filterTry
default Try<T> filterTry(CheckedPredicate<? super T> predicate, Supplier<? extends Throwable> throwableSupplier) Returnsthis
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
.- Parameters:
predicate
- A checked predicatethrowableSupplier
- A supplier of a throwable- Returns:
- a
Try
instance - Throws:
NullPointerException
- ifpredicate
orthrowableSupplier
is null
-
filterTry
default Try<T> filterTry(CheckedPredicate<? super T> predicate, CheckedFunction1<? super T, ? extends Throwable> errorProvider) Returnsthis
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
.- Parameters:
predicate
- A checked predicateerrorProvider
- A provider of a throwable- Returns:
- a
Try
instance - Throws:
NullPointerException
- ifpredicate
orerrorProvider
is null
-
filterTry
Returnsthis
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.- Parameters:
predicate
- A checked predicate- Returns:
- a
Try
instance - Throws:
NullPointerException
- ifpredicate
is null
-
flatMap
Shortcut forflatMapTry(mapper::apply)
, seeflatMapTry(CheckedFunction1)
.- Type Parameters:
U
- The new component type- Parameters:
mapper
- A mapper- Returns:
- a
Try
- Throws:
NullPointerException
- ifmapper
is null
-
flatMapTry
FlatMaps the value of a Success or returns a Failure.- Type Parameters:
U
- The new component type- Parameters:
mapper
- A mapper- Returns:
- a
Try
- Throws:
NullPointerException
- ifmapper
is null
-
get
T get()Gets the result of this Try if this is aSuccess
or throws if this is aFailure
.IMPORTANT! If this is a
Try.Failure
, the underlyingcause
of typeThrowable
is thrown.The thrown exception is exactly the same as the result of
getCause()
. -
getCause
Throwable getCause()Gets the cause if this is a Failure or throws if this is a Success.- Returns:
- The cause if this is a Failure
- Throws:
UnsupportedOperationException
- if this is a Success
-
isAsync
default boolean isAsync()ATry
's value is computed synchronously. -
isEmpty
boolean isEmpty()Checks whether this Try has no result, i.e. is a Failure. -
isFailure
boolean isFailure()Checks if this is a Failure.- Returns:
- true, if this is a Failure, otherwise false, if this is a Success
-
isLazy
default boolean isLazy()ATry
's value is computed eagerly. -
isSingleValued
default boolean isSingleValued()ATry
is a single-valued.- Specified by:
isSingleValued
in interfaceValue<T>
- Returns:
true
-
isSuccess
boolean isSuccess()Checks if this is a Success.- Returns:
- true, if this is a Success, otherwise false, if this is a Failure
-
iterator
Description copied from interface:Value
Returns a richio.vavr.collection.Iterator
. -
map
Shortcut formapTry(mapper::apply)
, seemapTry(CheckedFunction1)
.- Specified by:
map
in interfaceValue<T>
- Type Parameters:
U
- The new component type- Parameters:
mapper
- A checked function- Returns:
- a
Try
- Throws:
NullPointerException
- ifmapper
is null
-
mapFailure
@GwtIncompatible default Try<T> mapFailure(API.Match.Case<? extends Throwable, ? extends Throwable>... cases) Maps the cause to a new exception if this is aFailure
or returns this instance if this is aSuccess
.If none of the given cases matches the cause, the same
Failure
is returned.- Parameters:
cases
- A not necessarily exhaustive sequence of cases that will be matched against a cause.- Returns:
- A new
Try
if this is aFailure
, otherwise this.
-
mapTry
Runs the given checked function if this is aTry.Success
, passing the result of the current expression to it. If this expression is aTry.Failure
then it'll return a newTry.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
- Type Parameters:
U
- The new component type- Parameters:
mapper
- A checked function- Returns:
- a
Try
- Throws:
NullPointerException
- ifmapper
is null
-
onFailure
Consumes the cause if this is aTry.Failure
.// (does not print anything) Try.success(1).onFailure(System.out::println); // prints "java.lang.Error" Try.failure(new Error()).onFailure(System.out::println);
- Parameters:
action
- An exception consumer- Returns:
- this
- Throws:
NullPointerException
- ifaction
is null
-
onFailure
@GwtIncompatible default <X extends Throwable> Try<T> onFailure(Class<X> exceptionType, Consumer<? super X> action) Consumes the cause if this is aTry.Failure
and the cause is instance ofX
.// (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"));
- Type Parameters:
X
- the exception type that should be handled- Parameters:
exceptionType
- the exception type that is handledaction
- an excpetion consumer- Returns:
- this
- Throws:
NullPointerException
- ifexceptionType
oraction
is null
-
onSuccess
Consumes the value if this is aTry.Success
.// prints "1" Try.success(1).onSuccess(System.out::println); // (does not print anything) Try.failure(new Error()).onSuccess(System.out::println);
- Parameters:
action
- A value consumer- Returns:
- this
- Throws:
NullPointerException
- ifaction
is null
-
orElse
-
orElse
-
getOrElseGet
-
orElseRun
-
getOrElseThrow
default <X extends Throwable> T getOrElseThrow(Function<? super Throwable, X> exceptionProvider) throws X- Throws:
X
-
fold
default <X> X fold(Function<? super Throwable, ? extends X> ifFail, Function<? super T, ? extends X> f) Folds either theFailure
or theSuccess
side of the Try value.- Type Parameters:
X
- type of the folded value- Parameters:
ifFail
- maps the left value if this is aFailure
f
- maps the value if this is aSuccess
- Returns:
- A value of type X
-
peek
Applies the action to the value of a Success or does nothing in the case of a Failure.- Specified by:
peek
in interfaceValue<T>
- Parameters:
action
- A Consumer- Returns:
- this
Try
- Throws:
NullPointerException
- ifaction
is null
-
recover
@GwtIncompatible default <X extends Throwable> Try<T> recover(Class<X> exceptionType, Function<? super X, ? extends T> f) Returnsthis
, if this is aSuccess
or this is aFailure
and the cause is not assignable fromcause.getClass()
. Otherwise tries to recover the exception of the failure withf
, i.e. callingTry.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);
- Type Parameters:
X
- Exception type- Parameters:
exceptionType
- The specific exception type that should be handledf
- A recovery function taking an exception of typeX
- Returns:
- a
Try
- Throws:
NullPointerException
- ifexception
is null orf
is null
-
recoverWith
@GwtIncompatible default <X extends Throwable> Try<T> recoverWith(Class<X> exceptionType, Function<? super X, Try<? extends T>> f) Returnsthis
, if this is aSuccess
or this is aFailure
and the cause is not assignable fromcause.getClass()
. Otherwise tries to recover the exception of the failure withf
which returns Try. IfisFailure()
returned byf
function istrue
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));
- Type Parameters:
X
- Exception type- Parameters:
exceptionType
- The specific exception type that should be handledf
- A recovery function taking an exception of typeX
and returning Try as a result of recovery. If Try isisSuccess()
then recovery ends up successfully. Otherwise the function was not able to recover.- Returns:
- a
Try
- Throws:
NullPointerException
- ifexceptionType
orf
is null
-
recoverWith
@GwtIncompatible default <X extends Throwable> Try<T> recoverWith(Class<X> exceptionType, Try<? extends T> recovered) Recovers thisTry
with the givenrecovered
, if this is aTry.Failure
and the givenexceptionType
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));
- Type Parameters:
X
- type of the exception that should be recovered- Parameters:
exceptionType
- the exception type that is recoveredrecovered
- the substitute for a matchingFailure
- Returns:
- the given
recovered
if this is aTry.Failure
and the cause is of typeX
, elsethis
- Throws:
NullPointerException
- ifexceptionType
orrecovered
is null
-
recover
Returnsthis
, if this is aTry.Success
or this is aFailure
and the cause is not assignable fromcause.getClass()
. Otherwise returns aTry.Success
containing the givenvalue
.// = 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);
- Type Parameters:
X
- Exception type- Parameters:
exceptionType
- The specific exception type that should be handledvalue
- A value that is used in case of a recovery- Returns:
- a
Try
- Throws:
NullPointerException
- ifexception
is null
-
recover
Returnsthis
, if this is aSuccess
, otherwise tries to recover the exception of the failure withf
, i.e. callingTry.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);
- Parameters:
f
- A recovery function taking a Throwable- Returns:
- a
Try
- Throws:
NullPointerException
- iff
is null
-
recoverWith
Returnsthis
, if this is a Success, otherwise tries to recover the exception of the failure withf
, i.e. callingf.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));
- Parameters:
f
- A recovery function taking a Throwable- Returns:
- a
Try
- Throws:
NullPointerException
- iff
is null
-
toEither
Converts thisTry
to anEither
.- Returns:
- A new
Either
-
toValidation
Converts thisTry
to aValidation
.- Returns:
- A new
Validation
-
toValidation
Converts thisTry
to aValidation
, converting the Throwable (if present) to another object using passedFunction
.Validation<String, Integer> = Try.of(() -> 1/0).toValidation(Throwable::getMessage));
- Type Parameters:
U
- result type of the throwable mapper- Parameters:
throwableMapper
- A transformation from throwable to desired invalid type of newValidation
- Returns:
- A new
Validation
- Throws:
NullPointerException
- if the giventhrowableMapper
is null.
-
transform
Transforms thisTry
.- Type Parameters:
U
- Type of transformation result- Parameters:
f
- A transformation- Returns:
- An instance of type
U
- Throws:
NullPointerException
- iff
is null
-
andFinally
Provides try's finally behavior no matter what the result of the operation is.- Parameters:
runnable
- A runnable- Returns:
- this
Try
. - Throws:
NullPointerException
- ifrunnable
is null
-
andFinallyTry
Provides try's finally behavior no matter what the result of the operation is.- Parameters:
runnable
- A runnable- Returns:
- this
Try
. - Throws:
NullPointerException
- ifrunnable
is null
-
equals
Description copied from interface:Value
Clarifies that values have a proper equals() method implemented. -
hashCode
int hashCode()Description copied from interface:Value
Clarifies that values have a proper hashCode() method implemented.See Object.hashCode().
-
toString
String toString()Description copied from interface:Value
Clarifies that values have a proper toString() method implemented.See Object.toString().
-
withResources
static <T1 extends AutoCloseable> Try.WithResources1<T1> withResources(CheckedFunction0<? extends T1> t1Supplier) Creates aTry
-with-resources builder that operates on oneAutoCloseable
resource.- Type Parameters:
T1
- Type of the 1st resource.- Parameters:
t1Supplier
- The supplier of the first resource.- Returns:
- a new
Try.WithResources1
instance.
-
withResources
static <T1 extends AutoCloseable,T2 extends AutoCloseable> Try.WithResources2<T1,T2> withResources(CheckedFunction0<? extends T1> t1Supplier, CheckedFunction0<? extends T2> t2Supplier) Creates aTry
-with-resources builder that operates on twoAutoCloseable
resources.- Type Parameters:
T1
- Type of the 1st resource.T2
- Type of the 2nd resource.- Parameters:
t1Supplier
- The supplier of the 1st resource.t2Supplier
- The supplier of the 2nd resource.- Returns:
- a new
Try.WithResources2
instance.
-
withResources
static <T1 extends AutoCloseable,T2 extends AutoCloseable, Try.WithResources3<T1,T3 extends AutoCloseable> T2, withResourcesT3> (CheckedFunction0<? extends T1> t1Supplier, CheckedFunction0<? extends T2> t2Supplier, CheckedFunction0<? extends T3> t3Supplier) Creates aTry
-with-resources builder that operates on threeAutoCloseable
resources.- Type Parameters:
T1
- Type of the 1st resource.T2
- Type of the 2nd resource.T3
- Type of the 3rd resource.- Parameters:
t1Supplier
- The supplier of the 1st resource.t2Supplier
- The supplier of the 2nd resource.t3Supplier
- The supplier of the 3rd resource.- Returns:
- a new
Try.WithResources3
instance.
-
withResources
static <T1 extends AutoCloseable,T2 extends AutoCloseable, Try.WithResources4<T1,T3 extends AutoCloseable, T4 extends AutoCloseable> T2, withResourcesT3, T4> (CheckedFunction0<? extends T1> t1Supplier, CheckedFunction0<? extends T2> t2Supplier, CheckedFunction0<? extends T3> t3Supplier, CheckedFunction0<? extends T4> t4Supplier) Creates aTry
-with-resources builder that operates on fourAutoCloseable
resources.- Type Parameters:
T1
- Type of the 1st resource.T2
- Type of the 2nd resource.T3
- Type of the 3rd resource.T4
- Type of the 4th resource.- Parameters:
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.- Returns:
- a new
Try.WithResources4
instance.
-
withResources
static <T1 extends AutoCloseable,T2 extends AutoCloseable, Try.WithResources5<T1,T3 extends AutoCloseable, T4 extends AutoCloseable, T5 extends AutoCloseable> T2, withResourcesT3, T4, T5> (CheckedFunction0<? extends T1> t1Supplier, CheckedFunction0<? extends T2> t2Supplier, CheckedFunction0<? extends T3> t3Supplier, CheckedFunction0<? extends T4> t4Supplier, CheckedFunction0<? extends T5> t5Supplier) Creates aTry
-with-resources builder that operates on fiveAutoCloseable
resources.- Type Parameters:
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.- Parameters:
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.- Returns:
- a new
Try.WithResources5
instance.
-
withResources
static <T1 extends AutoCloseable,T2 extends AutoCloseable, Try.WithResources6<T1,T3 extends AutoCloseable, T4 extends AutoCloseable, T5 extends AutoCloseable, T6 extends AutoCloseable> T2, withResourcesT3, T4, T5, T6> (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 aTry
-with-resources builder that operates on sixAutoCloseable
resources.- Type Parameters:
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.- Parameters:
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.- Returns:
- a new
Try.WithResources6
instance.
-
withResources
static <T1 extends AutoCloseable,T2 extends AutoCloseable, Try.WithResources7<T1,T3 extends AutoCloseable, T4 extends AutoCloseable, T5 extends AutoCloseable, T6 extends AutoCloseable, T7 extends AutoCloseable> T2, withResourcesT3, T4, T5, T6, T7> (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 aTry
-with-resources builder that operates on sevenAutoCloseable
resources.- Type Parameters:
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.- Parameters:
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.- Returns:
- a new
Try.WithResources7
instance.
-
withResources
static <T1 extends AutoCloseable,T2 extends AutoCloseable, Try.WithResources8<T1,T3 extends AutoCloseable, T4 extends AutoCloseable, T5 extends AutoCloseable, T6 extends AutoCloseable, T7 extends AutoCloseable, T8 extends AutoCloseable> T2, withResourcesT3, T4, T5, T6, T7, T8> (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 aTry
-with-resources builder that operates on eightAutoCloseable
resources.- Type Parameters:
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.- Parameters:
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.- Returns:
- a new
Try.WithResources8
instance.
-