java.lang.Object
org.junit.platform.commons.util.ExceptionUtils
Collection of utilities for working with exceptions.
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
by removing stack trace elements from theorg.junit
,jdk.internal.reflect
, andsun.reflect
packages.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
Read the stacktrace of the suppliedThrowable
into a String. -
pruneStackTrace
@API(status=INTERNAL, since="1.10") public static void pruneStackTrace(Throwable throwable, List<String> classNames) Prune the stack trace of the suppliedThrowable
by removing stack trace elements from theorg.junit
,jdk.internal.reflect
, andsun.reflect
packages. If aStackTraceElement
matching one of the suppliedclassNames
is encountered, all subsequent elements in the stack trace will be retained.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
-