为了避免每次都try..catry,采用全局异常处理
请求:
@PostMapping("/login")
public String login(String password,String username) throws Exception{
int i=1/0;
}
全局异常处理类:
@RestControllerAdvice
public class MyException {
@ExceptionHandler(Exception.class)
public void exception(Exception e) {
// 获取request对象
HttpServletRequest request = ((ServletRequestAttributes) (RequestContextHolder.currentRequestAttributes())).getRequest();
System.out.println(("统一业务异常处理信息:{"+e.getMessage()+"}, URL : {"+ request.getRequestURL()+"}, METHOD : {"+ request.getMethod()+"}"));
}
}
解释两个注解:@RestControllerAdvice和 @ExceptionHandler
@RestControllerAdvice:监控所有的@RequestMapping,捕获它们的异常。
@ExceptionHandler: 所有该情形下的(Exception.class)异常就会交由我们规定好的@ExceptionHandler这个注解标记的方法里处理。