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

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



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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值