springboot的错误处理

比如自定义的 HelloException \ @ResponseBody给参数赋值因为post的json不存在时候的 HttpMessageNotReadableException

不做处理的话,程序会直接相应404、500之类信息,如何接收呢

那就是用最常用也是最好用的方式,添加一个ExceptionHandle文件

/**
 * @ClassName ExceptionHandle
 * @Description 统一处理控制层的异常
 * @date 2020年3月14日 上午9:55:41
 * @version 1.0
 */
@ControllerAdvice
public class HttpMessageNotReadableExceptionHandler {

    @ExceptionHandler(HttpMessageNotReadableException.class)
    public ApiResponse<String> processException(HttpMessageNotReadableException ex) {
        ApiResponse<String> e = new ApiResponse<>();
        e.setCode(ApiResponse.CODE_ERR_COMMON);
        e.setMessage("捕捉到HttpMessageNotReadableException:"+ex.getMessage());
        return e;
    }

    @ExceptionHandler(HelloException.class)
    public ApiResponse<String> processException(HelloException ex) {
        ApiResponse<String> e = new ApiResponse<>();
        e.setCode(ApiResponse.CODE_ERR_COMMON);
        e.setMessage("捕捉到HelloException:"+ex.getMessage());
        return e;
    }
}

以上将会捕捉2种异常进行如何,如果补抓所有异常

直接 

@ExceptionHandler(Exception.class)

就可以

 

备注:

 

@Response user 这样赋值的,如果json为空一定会直接异常

Resolved [org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: 

{
    "timestamp": "2022-03-30 13:10:03",
    "status": 400,
    "error": "Bad Request",
    "message": "",
    "path": "/test/AUTH/api/v2/login"
}

 

posted @ 2022-03-30 13:22  许伟强  阅读(133)  评论(0)    收藏  举报