MyJiZhongException.java
package com.atguigu.controller;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.servlet.ModelAndView;
/**
* 集中处理所有异常
* @author lfy
*
* 1、集中处理所有异常的类加入到ioc容器中
* 2、@ControllerAdvice专门处理异常的类
*/
@ControllerAdvice
public class MyJiZhongException {
@ExceptionHandler(value={ArithmeticException.class})
public ModelAndView handleException01(Exception exception){
System.out.println("全局的:handleException01..."+exception);
//
ModelAndView view = new ModelAndView("myerror");
view.addObject("ex", exception);
//视图解析器拼串
return view;
}
@ExceptionHandler(value={Exception.class})
public ModelAndView handleException02(Exception exception){
System.out.println("全局的:handleException02..."+exception);
//
ModelAndView view = new ModelAndView("myerror");
view.addObject("ex", exception);
//视图解析器拼串
return view;
}
}
ExceptionTestController.java
/**
* 告诉SpringMVC这个方法专门处理这个类发生的异常 1、给方法上随便写一个Exception,用来接受发生的异常
* 2、要携带异常信息不能给参数位置写Model; 3、返回ModelAndView就行了;
* 4、如果有多个@ExceptionHandler都能处理这个异常,精确优先 5、全局异常处理与本类同时存在,本类优先;
*/
@ExceptionHandler(value = { Exception.class })
public ModelAndView handleException01(Exception exception) {
System.out.println("本类的:handleException01..." + exception);
//
ModelAndView view = new ModelAndView("myerror");
view.addObject("ex", exception);
// 视图解析器拼串
return view;
}
全局异常和本类异常都存在时,本类异常优先。