springboot全局异常处理

1.新建GlobalExceptionHandler 全局异常处理类

@ControllerAdvice

@ResponseBody

public class GlobalExceptionHandler {

    /**

     * 处理MyException异常

     */

    @ExceptionHandler(MyException.class)

    public ReturnJson myExceptionHandler(MyException ex) {

        return new ReturnJson(ResultStatusEnum.FAILURE.getCode(), ResultStatusEnum.FAILURE.getMessage(), null);

    }

    

    /**

     * 处理RunTimeException异常

     */

    @ExceptionHandler(RuntimeException.class)

    public ReturnJson runtimeExceptionHandler(RuntimeException ex) {

        return new ReturnJson(ResultStatusEnum.FAILURE.getCode(), ResultStatusEnum.FAILURE.getMessage(), null);

    }

}

 

 

2.自定义异常类MyException继承RuntimeException

 

@Getter

public class MyException extends RuntimeException{

    /*

     * 状态码

     */

    private int code;

    /*

     * 消息提示

     */

    private String message;

    

    public MyException(int code, String message) {

        this.code = code;

        this.message = message;

tion ex) {MT5https://www.gendan5.com/mt5.html

  public MyException(ResultStatusEnum resultStatusEnum) {

        this.code = resultStatusEnum.getCode();

        this.message = resultStatusEnum.getMessage();

    }

 

}

 

 

3.用到的其他类

 

@Data

public class ReturnJson {

    /*

     * 状态码

     */

    private int code;

    /*

     * 消息提示

     */

    private String message;

    /*

     * 返回内容

     */

    private T info;

    

    public ReturnJson(int code,String message ,T info) {

        this.code=code;

        this.message=message;

        this.info=info;

    }

}

@NoArgsConstructor

@AllArgsConstructor

public enum ResultStatusEnum {

    /**

     * 请求成功

     */

    SUCCESS(200, "请求成功!"),

    

    /*

     * 请求失败

     */

    FAILURE(400, "请求失败!");

    

    @Getter

    @Setter

    private int code;

    

    @Getter

    @Setter

    private String message;

}