Package com.google.common.testing
Class ClusterException
- java.lang.Object
-
- java.lang.Throwable
-
- java.lang.Exception
-
- java.lang.RuntimeException
-
- com.google.common.testing.ClusterException
-
- All Implemented Interfaces:
java.io.Serializable
@GwtCompatible final class ClusterException extends java.lang.RuntimeException
AnClusterException
is a data structure that allows for some code to "throw multiple exceptions", or something close to it. The prototypical code that calls for this class is presented below:void runManyThings(List<ThingToRun> thingsToRun) { for (ThingToRun thingToRun : thingsToRun) { thingToRun.run(); // say this may throw an exception, but you want to // always run all thingsToRun } }
This is what the code would become:
void runManyThings(List<ThingToRun> thingsToRun) { List<Exception> exceptions = Lists.newArrayList(); for (ThingToRun thingToRun : thingsToRun) { try { thingToRun.run(); } catch (Exception e) { exceptions.add(e); } } if (exceptions.size() > 0) { throw ClusterException.create(exceptions); } }
See semantic details at
create(Collection)
.
-
-
Field Summary
Fields Modifier and Type Field Description java.util.Collection<? extends java.lang.Throwable>
exceptions
-
Constructor Summary
Constructors Modifier Constructor Description private
ClusterException(java.util.Collection<? extends java.lang.Throwable> exceptions)
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.lang.RuntimeException
create(java.lang.Throwable... exceptions)
static java.lang.RuntimeException
create(java.util.Collection<? extends java.lang.Throwable> exceptions)
Given a collection of exceptions, returns aRuntimeException
, with the following rules: Ifexceptions
has a single exception and that exception is aRuntimeException
, return it Ifexceptions
has a single exceptions and that exceptions is not aRuntimeException
, return a simpleRuntimeException
that wraps it Otherwise, return an instance ofClusterException
that wraps the first exception in theexceptions
collection.
-
-
-
Method Detail
-
create
public static java.lang.RuntimeException create(java.lang.Throwable... exceptions)
- See Also:
create(Collection)
-
create
public static java.lang.RuntimeException create(java.util.Collection<? extends java.lang.Throwable> exceptions)
Given a collection of exceptions, returns aRuntimeException
, with the following rules:- If
exceptions
has a single exception and that exception is aRuntimeException
, return it - If
exceptions
has a single exceptions and that exceptions is not aRuntimeException
, return a simpleRuntimeException
that wraps it - Otherwise, return an instance of
ClusterException
that wraps the first exception in theexceptions
collection.
Though this method takes any
Collection
, it often makes most sense to pass aList
or some other collection that preserves the order in which the exceptions got added.- Throws:
java.lang.NullPointerException
- ifexceptions
is nulljava.lang.IllegalArgumentException
- ifexceptions
is empty
- If
-
-