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

Modifier and Type
Method
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

`equals, reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong`

## Constructor Details

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

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