1. 程式人生 > 其它 >springboot-統一異常處理

springboot-統一異常處理

技術標籤:spring boot

目錄

統一異常處理

呼叫服務介面時如果出現異常,則會按照預設的http返回格式進行返回,如果需要自定義異常返回格式,則需要通過@RestControllerAdvice實現:

@RestControllerAdvice
@Priority(1)//設定優先順序

public class GlobalExceptionHandler {

    private Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class);

    @ExceptionHandler
(Exception.class) @ResponseBody public ResponseData defaultErrorHandler(HttpServletRequest req, Exception e) throws Exception{ logger.error("",e); ResponseData r = new ResponseData(); r.setMessage(e.getMessage()); r.setCode(500); r.setData(null)
; r.setStatus(false); return r; } }

其中,ResponseData為自定義的返回格式:

@Data
public class ResponseData {

    private Boolean status = true;
    private int code = 200;
    private String message;
    private Object data;

}

此時,發生異常時介面返回的格式為:
在這裡插入圖片描述

404錯誤統一處理

按上面的方法設定無法處理URL錯誤引發的異常情況,需要在配置檔案中增加設定:

spring.mvc.throw-exception-if-no-handler-found=true
spring.resources.add-mappings=false