springmvc 注解 开发 异常处理器
注解开发异常处理器
- 使用注解实现异常分类管理
名称: @ControllerAdvice
类型: 类注解
位置:异常处理器类上方
作用:设置当前类为异常处理器类
范例:
@Component
@ControllerAdvice
public class ExceptionAdvice {
}
- 使用注解实现异常分类管理
名称: @ExceptionHandler
类型: 方法注解
位置:异常处理器类中针对指定异常进行处理的方法上方
作用:设置指定异常的处理方式
范例:
说明:处理器方法可以设定多个
@ExceptionHandler(Exception.class)
@ResponseBody
public String doOtherException(Exception ex){
return "出错啦,请联系管理员! ";
}
使用注解开发异常处理器,就是写个类来处理异常。
用 @ControllerAdvice 指定这是 控制通知类 这个类就是专门用来控制异常的
@ExceptionHandler 加在方法上,这个方法就能用来 写异常了,
参数 NullPointerException.class,异常的名称,这个注解底层用反射的方式获取 数据, 这就的 将参数 转为 class 字节码类型的 数据
@Component
//使用注解开发异常处理器
//声明该类是一个Controller的通知类,声明后该类就会被加载成异常处理器
//@ControllerAdvice
public class ExceptionAdvice {
//类中定义的方法携带@ExceptionHandler注解的会被作为异常处理器,后面添加实际处理的异常类型
@ExceptionHandler(NullPointerException.class)
@ResponseBody
public String doNullException(Exception ex){
return "空指针异常";
}
@ExceptionHandler(ArithmeticException.class)
@ResponseBody
public String doArithmeticException(Exception ex){
return "ArithmeticException";
}
@ExceptionHandler(Exception.class)
@ResponseBody
public String doException(Exception ex){
return "all";
}
}
控制通知类 这个类就是专门用来控制异常的类,在这个类中,可以写很多控制异常、处理异常的方法。
@ResponseBody 还要转换异常的返回值类型 成为json格式,响应出去