天天看点

springboot自定义异常

自定义异常类

public class UserNameAndPasswordException extends RuntimeException {
    public UserNameAndPasswordException(String message) {
        super(message);
    }
}

           

异常信息实体类

import java.io.Serializable;

public class ErrorMessage implements Serializable {
    private Integer erroCode;
    private String message;

    public ErrorMessage(Integer erroCode, String message) {
        this.erroCode = erroCode;
        this.message = message;
    }

    public Integer getErroCode() {
        return erroCode;
    }

    public void setErroCode(Integer erroCode) {
        this.erroCode = erroCode;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}

           

异常处理类

@ControllerAdvice拦截异常,

@[email protected]可换成@RestControllerAdvice.

@ExceptionHandler指定处理哪种异常(可指定多个),

@ResponseStatus指定返回的http状态码(具体可查看HttpStatus这个类),

@RestControllerAdvice //@ControllerAdvice [email protected]
public class CustomExceptionHandler  {

    @ExceptionHandler(value = UserNameAndPasswordException.class)
    @ResponseStatus(code = HttpStatus.BAD_REQUEST)
    public ErrorMessage handlerError(UserNameAndPasswordException ex){
        return new ErrorMessage(1001,ex.getMessage());
    }
}

           

继续阅读