- 新建一个异常类(UserNotExistException)继承RuntimeException,然后写一个构造方法,在类中也可以定义变量
public class UserNotExistException extends RuntimeException{
public UserNotExistException() {
super("user no exist");
}
}
super()中的值就是这个异常的提示信息
- 定制客户端访问时,发生此异常的json数据,新建一个类在类上添加@ControllerAdvice注解,新建一个方法,返回值为一个map,map中存放所需要返回的数据
@ControllerAdvice
public class ControllerExceptionHandle {
//表示处理的异常类
@ExceptionHandler(UserNotExistException.class)
//表示返回的是一个json数据串
@ResponseBody
//表示返回的状态码
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
public Map<String, Object> handleUserNotExistException(UserNotExistException ex) {
HashMap<String , Object> map = new HashMap<>();
map.put("id", ex.getId());
map.put("message", ex.getMessage());
return map;
}
}
- 可以自定义错误页面,在static目录下,或者templates下新建一个error目录,在error目录下,创建相应的错误状态码的html即可,比如404.html,还可以创建4xx.html,这样就表示4开头的异常,如果没有相应的html,就跳转到这个页面