標籤:檔案 blog 基於 設定檔 內容 web span new article
方法一:使用SimpleMappingExceptionResolver實現異常處理
//在Spring的設定檔applicationContext.xml中增加以下內容:<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <!-- 定義預設的異常處理頁面,當該異常類型的註冊時使用 --> <property name="defaultErrorView" value="error"></property> <!-- 定義異常處理頁面用來擷取異常資訊的變數名,預設名為exception --> <property name="exceptionAttribute" value="ex"></property> <!-- 定義需要特殊處理的異常,用類名或完全路徑名作為key,異常也頁名作為值 --> <property name="exceptionMappings"> <props> <prop key="cn.basttg.core.exception.BusinessException">error-business</prop> <prop key="cn.basttg.core.exception.ParameterException">error-parameter</prop> <!-- 這裡還可以繼續擴充對不同異常類型的處理 --> </props> </property> </bean>
方法二:實現HandlerExceptionResolver 介面自訂異常處理器
//1、增加HandlerExceptionResolver 介面的實作類別MyExceptionHandler,代碼如下: public class MyExceptionHandler implements HandlerExceptionResolver { public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { Map<String, Object> model = new HashMap<String, Object>(); model.put("ex", ex); // 根據不同錯誤轉向不同頁面 if(ex instanceof BusinessException) { return new ModelAndView("error-business", model); }else if(ex instanceof ParameterException) { return new ModelAndView("error-parameter", model); } else { return new ModelAndView("error", model); } } } //2、在Spring的設定檔applicationContext.xml中增加以下內容:<bean id="exceptionHandler" class="cn.basttg.core.exception.MyExceptionHandler"/>
方法三:使用@ExceptionHandler註解實現異常處理
//1、增加BaseController類,並在類中使用@ExceptionHandler註解聲明異常處理,代碼如下: public class BaseController { /** 基於@ExceptionHandler異常處理 */ @ExceptionHandler public String exp(HttpServletRequest request, Exception ex) { request.setAttribute("ex", ex); // 根據不同錯誤轉向不同頁面 if(ex instanceof BusinessException) { return "error-business"; }else if(ex instanceof ParameterException) { return "error-parameter"; } else { return "error"; } } } //2、修改代碼,使所有需要異常處理的Controller都繼承該類,如下所示,修改後的TestController類繼承於BaseController: public class TestController extends BaseController
原文:http://blog.csdn.net/ufo2910628/article/details/40399539
【轉】使用Spring MVC統一異常處理實戰