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

    Constructors
    Constructor and Description
    `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

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `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

      `comparing, comparing, comparingDouble, comparingInt, comparingLong, equals, naturalOrder, nullsFirst, nullsLast, reversed, reverseOrder, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong`

- - ### 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