全局异常处理器处理思路:
首先解析出异常类型;
如果该 异常类型是系统 自定义的异常,直接取出异常信息,在错误页面展示
如果该 异常类型不是系统 自定义的异常,构造一个自定义的异常类型(信息为“未知错误”)(应为一般业务异常我们并不希望被用户知道,防止代码泄露,造成不安全)
自定义异常一般是业务异常,这个异常的信息应该告知客户,系统异常一般是代码异常,一般写日志
SpringMVC提供一个HandlerExceptionResolver接口,全局异常处理器实现此接口
定义一个全局异常处理类:将客户异常的消息放入ModelAndView的model中,并在error页面中显示出来
package cn.itcast.core.exception;
//系统自定义异常处理类,针对预期的异常,需要在程序中抛出此类的异常
public class CustomException extends Exception{
//异常信息
private String message;
public CustomException(String message){
super(message);
this.message=message;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
在SpringMVC中生成该对象:
<!--配置异常对象处理器 该类要实现HandlerExceptionResolver接口 -->
<bean class="cn.itcast.core.exception.ExceptionResolver"></bean>
package cn.itcast.core.exception;
//系统自定义异常处理类,针对预期的异常,需要在程序中抛出此类的异常
public class CustomException extends Exception{
//异常信息
private String message;
public CustomException(String message){
super(message);
this.message=message;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}