今日代碼大賞 | 全局異常處理
程序員在開(kāi)發(fā)項(xiàng)目時(shí),一定會(huì)寫(xiě) Bug。
為了提高系統(tǒng)的健壯性,并且讓用戶看到更友好的提示(而不是 400、500 這種又臭又長(zhǎng)的錯(cuò)誤信息),我們肯定要對(duì)異常進(jìn)行處理。
但一般情況下,我們沒(méi)辦法預(yù)料和捕獲到所有的異常,怎么辦呢?
我們通常會(huì)采用全局異常處理器,最簡(jiǎn)單粗暴的實(shí)現(xiàn)方式就是把所有的代碼都用 try catch 包一層。
在 SpringBoot 項(xiàng)目中,其實(shí)有更簡(jiǎn)單優(yōu)雅的辦法,我們可以使用如下代碼統(tǒng)一處理異常:
@RestControllerAdvice
@Slf4j
public class GlobalExceptionHandler {
@ExceptionHandler(RuntimeException.class)
public BaseResponse<?> runtimeExceptionHandler(RuntimeException e) {
log.error("RuntimeException", e);
return ResultUtils.error(ErrorCode.SYSTEM_ERROR, "系統(tǒng)錯(cuò)誤");
}
}
無(wú)論是 Service 還是 Controller 還是什么位置的異常,通通一網(wǎng)打盡!
完整代碼片段來(lái)源于代碼小抄,歡迎點(diǎn)擊進(jìn)入小程序閱讀!
在線訪問(wèn):https://www.codecopy.cn/post/6tiler
評(píng)論
圖片
表情
