Spring Framework - Spring MVC - Global Exception Handling
Start
Global Exception Resolver
@ComponentpublicclassRestExceptionResolverextendsExceptionHandlerExceptionResolver{@Autowired//If you have multiple handlers make this a list of handlersprivateRestExceptionHandler restExceptionHandler;/**
* This resolver needs to be injected because it is the easiest (maybe only) way of getting the configured MessageConverters
*/@ResourceprivateExceptionHandlerExceptionResolver defaultResolver;@PostConstructpublicvoidafterPropertiesSet(){setMessageConverters(defaultResolver.getMessageConverters());setOrder(2);// The annotation @Order(2) does not work for this type of componentsuper.afterPropertiesSet();}@OverrideprotectedServletInvocableHandlerMethodgetExceptionHandlerMethod(HandlerMethod handlerMethod,Exception exception){ExceptionHandlerMethodResolver methodResolver =newExceptionHandlerMethodResolver(restExceptionHandler.getClass());Method method = methodResolver.resolveMethod(exception);if(method !=null){returnnewServletInvocableHandlerMethod(restExceptionHandler, method);}returnnull;}publicvoidsetRestExceptionHandler(RestExceptionHandler restExceptionHandler){this.restExceptionHandler = restExceptionHandler;}publicvoidsetDefaultResolver(ExceptionHandlerExceptionResolver defaultResolver){this.defaultResolver = defaultResolver;}}