每次写代码都要try/catch很影响代码的美观和可读性
springmvc中提供了四种异常处理的解决方式
一:使用@ExceptionHandler注解:
定义一个方法使用@ExceptionHandler注解,value是一个异常类的数组(放入各种异常) :
在此控制单元(此类)内发生异常都会进入这个方法;
@ExceptionHandler(value = {java.lang.ArithmeticException.class,java.lang.NullPointerException.class})
public ModelAndView handlerArithmeticException(Exception e){
System.out.println(e);
ModelAndView mv = new ModelAndView();
mv.addObject("msg",e);
mv.setViewName("error1");
return mv;}
二全局异常处理:@ExceptionHandler和@ControllerAdvice两个注解:
同方式一一样,只是创建一个处理异常的类,在类上使用@ControllerAdvice,
并在类中声明一个处理异常方法(方式一一样的方法),即可起到处理全局异常
@ControllerAdvice
public class GloableException {
@ExceptionHandler(value = {java.lang.ArithmeticException.class,java.lang.NullPointerException.class})
public ModelAndView handlerArithmeticException(Exception e){
System.out.println(e);
ModelAndView mv = new ModelAndView();
mv.addObject("msg",e);
mv.setViewName("error1");
return mv;
}
}