异常处理:自定义,抛出和捕获

第一步:创建枚举保存状态

package com.shangma.cn.demo1;

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;
    }
}

第二步:自定义异常

package com.shangma.cn.demo1;

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);
    }
}

猜你喜欢

转载自blog.csdn.net/phcla/article/details/115361343