在web项目中对项目进行全局的异常配置。
配置方法一:
web.xml修改
① 404状态码
<error-page>
<error-code>404</error-code>
<location>/public/404.html</location>
</error-page>
② 404状态码
<error-page>
<error-code>400</error-code>
<location>/public/404.html</location>
</error-page>
③ 500状态码
<error-page>
<error-code>500</error-code>
<location>/public/500.html</location>
</error-page>
④ 其他状态码
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/public/500.html</location>
</error-page>
配置方法二:
利用实现HandlerExceptionResolver接口控制跳转。下面是servlet实现类的配置方式
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<prop key="java.lang.Throwable">exception/exception</prop>
</props>
</property>
</bean>
自己定以实现类:
@SuppressWarnings("serial")
@ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR)
public class ServerInnerErrorException extends RuntimeException {
}
public class ExceptionResolveHandler implements HandlerExceptionResolver {
private static final Logger LOG = LogManager.getLogger(InfosSearchController.class);
@Override
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler,
Exception ex) {
LOG.error("server inner exception:", ex);
throw new ServerInnerErrorException();
}
}