## org.springframework.core
Class ExceptionDepthComparator

    java.lang.Object
      org.springframework.core.ExceptionDepthComparator

All Implemented Interfaces:
  Comparator<Class<? extends Throwable>>

    public class ExceptionDepthComparator

extends Object
implements Comparator<Class<? extends Throwable>>

Comparator capable of sorting exceptions based on their depth from the thrown exception type.

Since:
  3.0.3
Author:
  Juergen Hoeller, Arjen Poutsma

Constructor Summary
`ExceptionDepthComparator(Class<? extends Throwable> exceptionType)` Create a new ExceptionDepthComparator for the given exception type.
`ExceptionDepthComparator(Throwable exception)` Create a new ExceptionDepthComparator for the given exception.

Method Summary
`int` `compare(Class<? extends Throwable> o1, Class<? extends Throwable> o2)`
`static Class<? extends Throwable>` `findClosestMatch(Collection<Class<? extends Throwable>> exceptionTypes, Throwable targetException)` Obtain the closest match from the given exception types for the given target exception.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface java.util.Comparator
`equals`

Constructor Detail

### ExceptionDepthComparator

    public ExceptionDepthComparator(Throwable exception)

  Create a new ExceptionDepthComparator for the given exception.

  Parameters:
    `exception` - the target exception to compare to when sorting by depth

### ExceptionDepthComparator

    public ExceptionDepthComparator(Class<? extends Throwable> exceptionType)

  Create a new ExceptionDepthComparator for the given exception type.

  Parameters:
    `exceptionType` - the target exception type to compare to when sorting by depth

Method Detail

### compare

    public int compare(Class<? extends Throwable> o1,
                       Class<? extends Throwable> o2)

  Specified by:
    `compare` in interface `Comparator<Class<? extends Throwable>>`

### findClosestMatch

    public static Class<? extends Throwable> findClosestMatch(Collection<Class<? extends Throwable>> exceptionTypes,
                                                              Throwable targetException)

  Obtain the closest match from the given exception types for the given target exception.

  Parameters:
    `exceptionTypes` - the collection of exception types
    `targetException` - the target exception to find a match for
  Returns:
    the closest matching exception type from the given collection