SpringMVC統一異常處理

統一異常攔截處理方式

項目中不可避免會出現一些異常狀況,而一個web項目,若不攔截異常,糟糕的狀況下可能直接將堆棧拋給前端,從而致使各類鬼畜的問題前端

I. 藉助@ControllerAdvice攔截異常

給一個簡單的demo,即可以很容易的瞭解這種手段如何處理了java

@ControllerAdvice
@Slf4j
@ResponseBody
public class ActionExceptionHandler {

    @ExceptionHandler(value = Exception.class)
    public String defaultHandler(HttpServletRequest request, Exception e) {
        log.error("unexpected exception! request: {}, params: {} refer: {}, e: {}",
                request.getRequestURI(),
                request.getParameterMap(),
                request.getHeader("referer"),
                e);

        if (StringUtils.isBlank(e.getMessage())) {
            return ResponseWrapper.errorReturn(new Status(500, "內部異常"));
        } else {
            return ResponseWrapper.errorReturn(new Status(500, e.getMessage()));
        }
    }
}

這裏主要藉助兩個註解來實現,ControllerAdvice 和 ExceptionHandlerweb

II. 其餘

聲明

盡信書則不如,已上內容,純屬一家之言,因本人能力通常,看法不全,若有問題,歡迎批評指正app

掃描關注,java分享

QrCode

相關文章
相關標籤/搜索