Class AbstractExceptionHandlerMethodResolver

java.lang.Object
org.springframework.messaging.handler.invocation.AbstractExceptionHandlerMethodResolver
Direct Known Subclasses:
AnnotationExceptionHandlerMethodResolver

public abstract class AbstractExceptionHandlerMethodResolver extends Object
Cache exception handling method mappings and provide options to look up a method that should handle an exception. If multiple methods match, they are sorted using ExceptionDepthComparator and the top match is returned.
Since:
4.0
Author:
Rossen Stoyanchev, Juergen Hoeller, Sam Brannen
  • Constructor Details

    • AbstractExceptionHandlerMethodResolver

      protected AbstractExceptionHandlerMethodResolver(Map<Class<? extends Throwable>,Method> mappedMethods)
      Protected constructor accepting exception-to-method mappings.
  • Method Details

    • getExceptionsFromMethodSignature

      protected static List<Class<? extends Throwable>> getExceptionsFromMethodSignature(Method method)
      Extract the exceptions this method handles. This implementation looks for sub-classes of Throwable in the method signature.

      The method is static to ensure safe use from sub-class constructors.

    • hasExceptionMappings

      public boolean hasExceptionMappings()
      Whether the contained type has any exception mappings.
    • resolveMethod

      @Nullable public Method resolveMethod(Throwable exception)
      Find a Method to handle the given exception.

      Uses ExceptionDepthComparator if more than one match is found.

      Parameters:
      exception - the exception
      Returns:
      a Method to handle the exception, or null if none found
    • resolveMethodByExceptionType

      @Nullable public Method resolveMethodByExceptionType(Class<? extends Throwable> exceptionType)
      Find a Method to handle the given exception type. This can be useful if an Exception instance is not available (e.g. for tools).

      Uses ExceptionDepthComparator if more than one match is found.

      Parameters:
      exceptionType - the exception type
      Returns:
      a Method to handle the exception, or null if none found
      Since:
      4.3.1