Spring MVC 處理器異常解析器

2018-07-26 14:32 更新

Spring的處理器異常解析器HandlerExceptionResolver接口的實(shí)現(xiàn)負(fù)責(zé)處理各類控制器執(zhí)行過程中出現(xiàn)的異常。某種程度上講,HandlerExceptionResolver與你在web應(yīng)用描述符web.xml文件中能定義的異常映射(exception mapping)很相像,不過它比后者提供了更靈活的方式。比如它能提供異常被拋出時正在執(zhí)行的是哪個處理器這樣的信息。并且,一個更靈活(programmatic)的異常處理方式可以為你提供更多選擇,使你在請求被直接轉(zhuǎn)向到另一個URL之前(與你使用Servlet規(guī)范的異常映射是一樣的)有更多的方式來處理異常。

實(shí)現(xiàn)HandlerExceptionResolver接口并非實(shí)現(xiàn)異常處理的唯一方式,它只是提供了resolveException(Exception, Hanlder)方法的一個實(shí)現(xiàn)而已,方法會返回一個ModelAndView。除此之外,你還可以框架提供的SimpleMappingExceptionResolver或在異常處理方法上注解@ExceptionHandler。SimpleMappingExceptionResolver允許你獲取可能拋出的異常類的名字,并把它映射到一個視圖名上去。這與Servlet API提供的異常映射特性是功能等價的,但你也可以基于此實(shí)現(xiàn)粒度更精細(xì)的異常映射。而@ExceptionHandler注解的方法則會在異常拋出時被調(diào)用以處理該異常。這樣的方法可以定義在@Controller注解的控制器類里,也可以定義在@ControllerAdvice類中,后者可以使該異常處理方法被應(yīng)用到更多的@Controller控制器中。下一小節(jié)將提供更為詳細(xì)的信息。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號