Springboot异常处理器




  • 现在我们在Controller制造一个异常,然后用异常处理器捕获
    这里1/0会报错,我们用postman测试一下。
 @GetMapping
    public Result<List<Book>> getAll(){

        int i=1/0;
        return bookService.getAll();
    }
@RestControllerAdvice
public class ProjectExceptionAdvice {

    //拦截所有的异常信息
    @ExceptionHandler(Exception.class)
    public void doException(Exception e){
        e.printStackTrace();

        System.out.println("嘿嘿,异常你往哪里跑!");
    }

}

postman什么都没有,因为被异常处理器捕获了。

看看控制台有没有输出,可以看到表现层的异常已经被捕获到了。

然后呢,也可以改进一下。
枚举状态码

package com.hxut.domain;

import org.omg.CORBA.INTERNAL;

/**
 * description: Response
 * date: 2022/5/23 21:09
 * author: MR.孙
 */
public class Response {

    public enum Code{
        //1001-1099成功
        SUCCESS(1001,"成功"),
        SAVE_SUCCESS(1002,"保存成功"),
        DELETE_SUCCESS(1003,"删除成功"),
        UPDATE_SUCCESS(1004,"修改成功"),
        SELECT_SUCCESS(1005,"查询成功"),
        //1101-1199失败
        FAILED(1101,"失败"),
        SAVE_FAILED(1102,"保存失败"),
        DELETE_FAILED(1103,"删除失败"),
        UPDATE_FAILED(1104,"修改失败"),
        SELECT_FAILED(1105,"查询失败"),
        //1201-1299参数错误或为空
        PARAM_IS_NULL(1201,"参数为空"),
        PARAM_IS_ERROR(1202,"参数错误"),
        //400-600异常状态码
        BAD_REQUEST(400,"请求数据格式不正确!"),
        UNAUTHORIZED(401,"登录凭证过期"),
        FORBIDDEN(403,"没有权限"),
        NOT_FOUND(404,"没有找到资源"),

        INTERNAL_SERVER_ERROR(500,"服务器内部错误"),
        SERVICE_UNAVAILABLE(503,"服务器繁忙"),

        //未知异常
        UNKNOWN(10000,"未知异常")
        ;
        private Integer code;
        private String msg;

        Code(Integer code, String msg) {
            this.code = code;
            this.msg = msg;
        }

        public Integer code() {
            return code;
        }

        public String msg() {
            return msg;
        }

    }
}

改进异常处理器

//拦截所有的异常信息
    @ExceptionHandler(Exception.class)
    public Result doException(Exception e){
        e.printStackTrace();

        System.out.println("嘿嘿,异常你往哪里跑!");
        return Result.ok(Response.Code.UNKNOWN.code(),Response.Code.UNKNOWN.msg(),null);
    }

posted @ 2022-05-26 20:46  长情c  阅读(191)  评论(0)    收藏  举报