springboot-統一異常處理
阿新 • • 發佈:2021-02-15
技術標籤: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