1. 新建一个异常
这两个字段是我自定义的,需要什么定义什么
@Data
@NoArgsConstructor
public class SSOExeption extends RuntimeException {
private int status;
private String message;
public SSOExeption(int status,String message) {
super(message);
this.status = status;
this.message = message;
}
}
2. 使用异常
发生错误的时候直接抛出自定义的异常
@PostMapping("/login")
public LoginResponse login(@Valid UserLoginRequest user, BindingResult result, HttpServletResponse response) {
if (result.hasErrors()) {
throw new SSOExeption(400, result.getFieldError().getDefaultMessage());
}
return authorizedService.login(user, response);
}
3.SpringBoot的配置
@RestControllerAdvice
public class SSOExcceptionHandler {
// 处理 SSOExeption 异常
@ExceptionHandler(SSOExeption.class)
public CommonResponse happenError(SSOExeption ex){
return new CommonResponse(ex.getStatus(),ex.getMessage());
}
}
//=========================================
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CommonResponse {
private int status;
private String message;
}