W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Spring的處理器異常解析器HandlerExceptionResolver
接口的實(shí)現(xiàn)負(fù)責(zé)處理各類控制器執(zhí)行過程中出現(xiàn)的異常。某種程度上講,HandlerExceptionResolver
與你在web應(yīng)用描述符web.xml
文件中能定義的異常映射(exception mapping)很相像,不過它比后者提供了更靈活的方式。比如它能提供異常被拋出時(shí)正在執(zhí)行的是哪個(gè)處理器這樣的信息。并且,一個(gè)更靈活(programmatic)的異常處理方式可以為你提供更多選擇,使你在請(qǐng)求被直接轉(zhuǎn)向到另一個(gè)URL之前(與你使用Servlet規(guī)范的異常映射是一樣的)有更多的方式來處理異常。
實(shí)現(xiàn)HandlerExceptionResolver
接口并非實(shí)現(xiàn)異常處理的唯一方式,它只是提供了resolveException(Exception, Hanlder)
方法的一個(gè)實(shí)現(xiàn)而已,方法會(huì)返回一個(gè)ModelAndView
。除此之外,你還可以框架提供的SimpleMappingExceptionResolver
或在異常處理方法上注解@ExceptionHandler
。SimpleMappingExceptionResolver
允許你獲取可能拋出的異常類的名字,并把它映射到一個(gè)視圖名上去。這與Servlet API提供的異常映射特性是功能等價(jià)的,但你也可以基于此實(shí)現(xiàn)粒度更精細(xì)的異常映射。而@ExceptionHandler
注解的方法則會(huì)在異常拋出時(shí)被調(diào)用以處理該異常。這樣的方法可以定義在@Controller
注解的控制器類里,也可以定義在@ControllerAdvice
類中,后者可以使該異常處理方法被應(yīng)用到更多的@Controller
控制器中。下一小節(jié)將提供更為詳細(xì)的信息。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: