1.自定义异常类
继承Exception类
定义一个message属性用于存放异常信息
构造函数有一个message参数,声明该异常时必须传入异常信息
public class MyException extends Exception{
String message;
@Override
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
/**
* message:创建一个异常时,必修传入该异常的信息
*/
public MyException(String message) {
this.message = message;
}
}
2.自定义异常处理类
必须实现HandlerExceptionResolver接口,并实该接口的处理异常的方法resolveException
//编写自己的异常处理器类,必须实现HandlerExceptionResolver接口
public class MyExceptionResolve implements HandlerExceptionResolver {
/**
*
* @param httpServletRequest
* @param httpServletResponse
* @param o
* @param e:程序中抛出的异常对象
* @return 返回值是ModelAndView,传入键值对类型的信息,和要返回的页面
*/
@Override
public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
MyException myException=null;
//如果程序抛出的异常是自定义的异常,就直接拿过来处理
if (e instanceof MyException){
myException=(MyException) e;
} else {
//如果不是,就声明一个自定义的异常,并传入抛出的异常暂时无法处理的信息
myException=new MyException("系统正在维护");
}
ModelAndView modelAndView=new ModelAndView();
modelAndView.addObject("errormsg",myException.getMessage());
modelAndView.setViewName("error");
return modelAndView;
}
}
错误页面
<html>
<head>
<title>出错</title>
</head>
<body>
${errormsg} <%--直接展示存到ModelAndView中的错误信息--%>
</body>
</html>
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。