Class ExceptionUtils
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 voidpruneStackTrace(Throwable throwable, List<String> classNames) Prune the stack trace of the suppliedThrowableby removing stack trace elements from theorg.junit,jdk.internal.reflect, andsun.reflectpackages.static StringreadStackTrace(Throwable throwable) Read the stacktrace of the suppliedThrowableinto a String.static RuntimeExceptionThrow the suppliedThrowable, masked as an unchecked exception.
-
Method Details
-
throwAsUncheckedException
Throw the suppliedThrowable, masked as an unchecked exception.The supplied
Throwablewill 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- theThrowableto 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
throwstatement
-
readStackTrace
-
pruneStackTrace
@API(status=INTERNAL, since="1.10") public static void pruneStackTrace(Throwable throwable, List<String> classNames) Prune the stack trace of the suppliedThrowableby removing stack trace elements from theorg.junit,jdk.internal.reflect, andsun.reflectpackages. If aStackTraceElementmatching one of the suppliedclassNamesis 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- theThrowablewhose stack trace should be pruned; nevernullclassNames- 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- theThrowableto explore; nevernull- Returns:
- an immutable list of all throwables found, including the supplied
one; never
null - Since:
- 1.10
-