Class ExceptionUtils
DISCLAIMER
These utilities are intended solely for usage within the JUnit framework itself. Any usage by external parties is not supported. Use at your own risk!
- Since:
- 1.0
-
Method Summary
Modifier and TypeMethodDescriptionfindNestedThrowables
(Throwable rootThrowable) Find all causes and suppressed exceptions in the stack trace of the suppliedThrowable
.static void
pruneStackTrace
(Throwable throwable, List<String> classNames) Prune the stack trace of the suppliedThrowable
.static String
readStackTrace
(Throwable throwable) Read the stacktrace of the suppliedThrowable
into a String.static RuntimeException
Throw the suppliedThrowable
, masked as an unchecked exception.
-
Method Details
-
throwAsUncheckedException
Throw the suppliedThrowable
, masked as an unchecked exception.The supplied
Throwable
will not be wrapped. Rather, it will be thrown as is using an exploit of the Java language that relies on a combination of generics and type erasure to trick the Java compiler into believing that the thrown exception is an unchecked exception even if it is a checked exception.Warning
This method should be used sparingly.
- Parameters:
t
- theThrowable
to throw as an unchecked exception; nevernull
- Returns:
- this method always throws an exception and therefore never
returns anything; the return type is merely present to allow this
method to be supplied as the operand in a
throw
statement
-
readStackTrace
-
pruneStackTrace
@API(status=INTERNAL, since="1.10") public static void pruneStackTrace(Throwable throwable, List<String> classNames) Prune the stack trace of the suppliedThrowable
.Prune all stack trace elements up one of the supplied
classNames
are pruned. All subsequent elements in the stack trace will be retained.If the
classNames
do not match any of the stacktrace elements then theorg.junit
,jdk.internal.reflect
, andsun.reflect
packages are pruned.Additionally, all elements prior to and including the first JUnit Platform Launcher call will be removed.
- Parameters:
throwable
- theThrowable
whose stack trace should be pruned; nevernull
classNames
- the class names that should stop the pruning if encountered; nevernull
- Since:
- 1.10
-
findNestedThrowables
@API(status=INTERNAL, since="1.10") public static List<Throwable> findNestedThrowables(Throwable rootThrowable) Find all causes and suppressed exceptions in the stack trace of the suppliedThrowable
.- Parameters:
rootThrowable
- theThrowable
to explore; nevernull
- Returns:
- an immutable list of all throwables found, including the supplied
one; never
null
- Since:
- 1.10
-