【Java学习】全局异常处理器的使用流程
1.创建全局异常处理器的类:在工程的base包中创建exception包作为异常处理包,包内创建GlobalExceptionHandler的Java文件,作为全局异常处理器使用。
2.进入文件,添加@ResrControllerAdvice注解
(该注解是Spring MVC框架所属,添加在类上,是@ControllerAdvice和@ResponseBody的组合注解)
@ControllerAdvice是Spring MVC所属方法,添加在类上,标记此类中特定的方法将作用于每次处理请求的过程中
@ResponseBody是Spring MVC所属方法,添加在方法上,标记此方法是“响应正文”的,添加在类上则标记此类中的所有方法都是“响应正文”的
3.创建对应的异常处理方法,添加@ExceptionHandler注解(该注解是Spring MVC所属注解,添加在方法上,标记此方法是处理异常的方法,可以通过配置注解参数来指定需要处理的异常类型,如果没有配置注解参数,所处理的异常类型取决于方法的参数列表中的异常类型)
方法示例(RuntimeException:正常运行时可能发生的异常):
//注意 注解 和 参数[控制器抛出的异常对象]
@ExceptionHandler
public JonsResult doHandleRuntimeException(RuntimeException ex){}
对封装类参数进行合法性校验的处理方法:
@ExceptionHandler
public JsonResult doHandleMethodArgumentNotValidException(MethodArgumentNotValidException ex){String data = ex.getFieldError().getDefaultMessage();return new JsonResult(StatusCode.VALIDATE_ERROR,data);
}```对非封装类参数进行合法性校验:
split()切割,trim()去除一个字符串左右两侧的空白```java
@ExceptionHandler
public JsonResult doHandleConstraintViolationException(ConstraintViolationException ex){String data = ex.getMessage().split(":")[1].trim();return new JsonResult(StatusCode.VALIDATE_ERROR,data);
}