org.assertj.core.util
Class Throwables

java.lang.Object
  extended by org.assertj.core.util.Throwables

public final class Throwables
extends Object

Utility methods related to Throwables.

Author:
Alex Ruiz

Method Summary
static void appendStackTraceInCurentThreadToThrowable(Throwable t, String methodToStartFrom)
          Appends the stack trace of the current thread to the one in the given Throwable.
static Throwable getRootCause(Throwable throwable)
          Get the root cause (ie the last non null cause) from a Throwable.
static void removeAssertJRelatedElementsFromStackTrace(Throwable throwable)
          Removes the AssertJ-related elements from the Throwable stack trace that have little value for end user.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

appendStackTraceInCurentThreadToThrowable

public static void appendStackTraceInCurentThreadToThrowable(Throwable t,
                                                             String methodToStartFrom)
Appends the stack trace of the current thread to the one in the given Throwable.

Parameters:
t - the given Throwable.
methodToStartFrom - the name of the method used as the starting point of the current thread's stack trace.

removeAssertJRelatedElementsFromStackTrace

public static void removeAssertJRelatedElementsFromStackTrace(Throwable throwable)
Removes the AssertJ-related elements from the Throwable stack trace that have little value for end user. Therefore, instead of seeing this:
 org.junit.ComparisonFailure: expected:<'[Ronaldo]'> but was:<'[Messi]'>
   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
   at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
   at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
   at java.lang.reflect.Constructor.newInstance(Constructor.java:501)
   at org.assertj.core.error.ConstructorInvoker.newInstance(ConstructorInvoker.java:34)
   at org.assertj.core.error.ShouldBeEqual.newComparisonFailure(ShouldBeEqual.java:111)
   at org.assertj.core.error.ShouldBeEqual.comparisonFailure(ShouldBeEqual.java:103)
   at org.assertj.core.error.ShouldBeEqual.newAssertionError(ShouldBeEqual.java:81)
   at org.assertj.core.internal.Failures.failure(Failures.java:76)
   at org.assertj.core.internal.Objects.assertEqual(Objects.java:116)
   at org.assertj.core.api.AbstractAssert.isEqualTo(AbstractAssert.java:74)
   at examples.StackTraceFilterExample.main(StackTraceFilterExample.java:13)
 
We get this:
 org.junit.ComparisonFailure: expected:<'[Ronaldo]'> but was:<'[Messi]'>
   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
   at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
   at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
   at examples.StackTraceFilterExample.main(StackTraceFilterExample.java:20)
 

Parameters:
throwable - the Throwable to filter stack trace.

getRootCause

public static Throwable getRootCause(Throwable throwable)
Get the root cause (ie the last non null cause) from a Throwable.

Parameters:
throwable - the Throwable to get root cause from.
Returns:
the root cause if any, else null.


Copyright © 2013–2015 AssertJ. All rights reserved.