第一步:创建枚举保存状态
public enum StatusEnum {
ERROE(20001,"用户名错误"),
;
private int status;
private String message;
StatusEnum(int status, String message) {
this.status = status;
this.message = message;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
第二步:自定义异常
public class HuigeException extends RuntimeException {
private StatusEnum statusEnum;
public HuigeException(StatusEnum statusEnum) {
this.statusEnum = statusEnum;
}
public StatusEnum getStatusEnum() {
return statusEnum;
}
public void setStatusEnum(StatusEnum statusEnum) {
this.statusEnum = statusEnum;
}
}
第三步:Controller抛出自定义异常
@Controller
public class ErrorController {
@GetMapping("error")
public String error(){
if(true){
throw new HuigeException(StatusEnum.ERROE);
}
return "success";
}
}
第四步:异常处理类
@RestControllerAdvice
public class MyCustmerExceptionHander {
@ExceptionHandler(HuigeException.class)
public ResponseEntity hander(HuigeException huiException){
StatusEnum statusEnum = huiException.getStatusEnum();
ExceptionMessageBean bean =
new ExceptionMessageBean(statusEnum.getStatus(),statusEnum.getMessage());
return ResponseEntity.ok(bean);
}
}