Spring 之異常處理

spring的異常處理

spring的異常處理,有兩種方式

1、實現(xiàn)HandlerExceptionResolver

實現(xiàn)自定義的ExceptionResolver,同時要注冊到spring 容器


2、@ExceptionHandler

2.1 和Controller在同一個類里


2.2 在控制器增強器里,添加了@ControllerAdvice注解的類,會被注冊到spring 容器里,同時異常處理類,會掃描這些增強器里是有帶@ExceptionHandler注解的方法


ExceptionHandler的value 指定要處理的異常類型,如下是檢測異常類的方法,會掃描注解的值,同時也會添加方法的參數(shù)類型(是throwable的子類),當(dāng)拋出具體的異常,spring 會執(zhí)行@ExceptionHandler指定的相應(yīng)異常的方法

那對于上面兩種方式是怎么實現(xiàn)的呢?

在DispatcherServlet中


具體的內(nèi)容是在ExceptionHandlerExceptionResolver 其實這個類也是實現(xiàn)HandlerExceptionResolver




1 是取到當(dāng)前controller上的有@ExceptionHandler注解的方法

2 是取到@ControllerAdvice 注解類上的@ExceptionHandler注冊的方法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容