This example shows how to use HandlerExceptionResolverComposite which is an implementation of HandlerExceptionResolver. This resolvers iterates it's list of HandlerExceptionResolvers, the first one to resolve the exception wins and rest of the resolvers are not processed.

package com.logicbig.example;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.handler.HandlerExceptionResolverComposite;
import org.springframework.web.servlet.handler.SimpleMappingExceptionResolver;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import java.util.Arrays;
import java.util.Properties;
@EnableWebMvc
@ComponentScan("com.logicbig.example")
public class AppConfig {
@Bean
HandlerExceptionResolver exceptionResolverComposite () {
HandlerExceptionToViewResolver r = new HandlerExceptionToViewResolver();
SimpleMappingExceptionResolver s = new SimpleMappingExceptionResolver();
s.setDefaultErrorView("default-error-page");
Properties p = new Properties();
p.setProperty(IllegalAccessException.class.getName(), "simple-test-error-view");
s.setExceptionMappings(p);
HandlerExceptionResolverComposite c = new HandlerExceptionResolverComposite();
c.setExceptionResolvers(Arrays.asList(r, s));
return c;
}
@Bean
public ViewResolver viewResolver () {
InternalResourceViewResolver viewResolver =
new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/views/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
}
Original Post