异常处理

异常处理

  1. 异常需要处理,如果不处理,那么程序进行不下去
  2. 异常有很多,一些是需要catch的异常,不catch就抛出去
  3. 所以不管怎么样,都养解决。
  4. SpringMVC可以配置统一的异常处理器,controller可以抛出,service也可以抛出,dao层不建议抛出异常
  5. dao层异常——>service层接抛——>controller接抛——>统一异常处理器(各司其职,统一处理 )

步骤

  1. 创建自定义异常类
1
public abstract class DemoException extends Exception{
2
    private String message;
3
 
4
    public DemoException(String message)
5
    {
6
        this.message = message;
7
    }
8
    public String getMessage() {
9
        return message;
10
    }
11
}
  1. dao层方法抛出异常
  2. 创建并定义统一异常处理器
1
@ExceptionHandler//声明这是处理异常的方法
2
public ModelAndView resolveException(HttpServletRequest request,HttpServletResponse response,Object arg2,Excetion excetion){
3
    if(excetion instanceof DemoException){
4
        de=(DemoException)exception;
5
    }else if{
6
        ....
7
    }else if{
8
        ....
9
    }else if{
10
        ....
11
    }
12
}
  1. 跳转目的页面,传递错误信息
1
@ExceptionHandler//声明这是处理异常的方法
2
public ModelAndView resolveException(HttpServletRequest request,HttpServletResponse response,Object arg2,Excetion excetion){
3
    ModelAndView mav=new ModelAndView();
4
    if(excetion instanceof DemoException){
5
        de=(DemoException)exception;
6
    }else if{
7
        ....
8
    }
9
    mav.addObject("message", de.getMessage());
10
	mav.setViewName("error");//转到错误页面
11
}