麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

spring MVC 全局的異常處理

2019-11-14 20:51:34
字體:
供稿:網(wǎng)友
sPRing MVC 全局的異常處理

1、使用SimpleMappingExceptionResolver實(shí)現(xiàn)異常處理

  在Spring的配置文件applicationContext.xml中增加以下內(nèi)容:

<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">      <!-- 定義默認(rèn)的異常處理頁面,當(dāng)該異常類型的注冊(cè)時(shí)使用 -->      <property name="defaultErrorView" value="error"></property>      <!-- 定義異常處理頁面用來獲取異常信息的變量名,默認(rèn)名為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>                <!-- 這里還可以繼續(xù)擴(kuò)展對(duì)不同異常類型的處理 -->          </props>      </property>  </bean> 

注:使用SimpleMappingExceptionResolver進(jìn)行異常處理,具有集成簡(jiǎn)單、有良好的擴(kuò)展性、對(duì)已有代碼沒有入侵性等優(yōu)點(diǎn),但該方法僅能獲取到異常信息,若在出現(xiàn)異常時(shí),對(duì)需要獲取除異常以外的數(shù)據(jù)的情況不適用。

2、 實(shí)現(xiàn)HandlerExceptionResolver 接口自定義異常處理器

  增加HandlerExceptionResolver 接口的實(shí)現(xiàn)類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);                    // 根據(jù)不同錯(cuò)誤轉(zhuǎn)向不同頁面          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);          }      }  }  

在Spring的配置文件applicationContext.xml中增加以下內(nèi)容:

<bean id="exceptionHandler" class="cn.basttg.core.exception.MyExceptionHandler"/>  

注:使用實(shí)現(xiàn)HandlerExceptionResolver接口的異常處理器進(jìn)行異常處理,具有集成簡(jiǎn)單、有良好的擴(kuò)展性、對(duì)已有代碼沒有入侵性等優(yōu)點(diǎn),同時(shí),在異常處理時(shí)能獲取導(dǎo)致出現(xiàn)異常的對(duì)象,有利于提供更詳細(xì)的異常處理信息。

3 、使用@ExceptionHandler注解實(shí)現(xiàn)異常處理

  增加BaseController類,并在類中使用@ExceptionHandler注解聲明異常處理,代碼如下:

public class BaseController {      /** 基于@ExceptionHandler異常處理 */      @ExceptionHandler      public String exp(HttpServletRequest request, Exception ex) {                    request.setAttribute("ex", ex);                    // 根據(jù)不同錯(cuò)誤轉(zhuǎn)向不同頁面          if(ex instanceof BusinessException) {              return "error-business";          }else if(ex instanceof ParameterException) {              return "error-parameter";          } else {              return "error";          }      }  }  

修改代碼,使所有需要異常處理的Controller都繼承該類,

注:使用@ExceptionHandler注解實(shí)現(xiàn)異常處理,具有集成簡(jiǎn)單、有擴(kuò)展性好(只需要將要異常處理的Controller類繼承于BaseController即可)、不需要附加Spring配置等優(yōu)點(diǎn),但該方法對(duì)已有代碼存在入侵性(需要修改已有代碼,使相關(guān)類繼承于BaseController),在異常處理時(shí)不能獲取除異常以外的數(shù)據(jù)。

4、未捕獲異常的處理

  修改web.xml文件,增加以下內(nèi)容:

<!-- 出錯(cuò)頁面定義 -->  <error-page>      <exception-type>java.lang.Throwable</exception-type>      <location>/500.jsp</location>  </error-page>  <error-page>      <error-code>500</error-code>      <location>/500.jsp</location>  </error-page>  <error-page>      <error-code>404</error-code>      <location>/404.jsp</location>  </error-page>    <!-- 這里可繼續(xù)增加服務(wù)器錯(cuò)誤號(hào)的處理及對(duì)應(yīng)顯示的頁面 --> 


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 日本xxxx色视频在线观看免费, | 欧美1| 一级成人欧美一区在线观看 | 国产精品av久久久久久网址 | 精品久久久久久久久久久αⅴ | 极品国产91在线网站 | 久久久精品福利 | 成年免费在线视频 | 欧美国产精品一区二区 | 久久久午夜电影 | 亚洲欧美国产高清 | 麻豆一二区 | 4p嗯啊巨肉寝室调教男男视频 | 国产羞羞视频在线观看 | 亚洲尻逼视频 | 麻豆91精品91久久久 | 日韩黄色免费电影 | 久久免费视频3 | 在线1区 | 人人做人人看 | 成年人在线视频免费 | 成人午夜天堂 | 成年人黄色免费电影 | 精品在线视频观看 | 一区二区国产在线 | 欧美黄成人免费网站大全 | 日韩毛片在线看 | 一区二区久久精品66国产精品 | 91精品国产毛片 | 久久精品成人影院 | 色域tv| 性爱网站 | 日本在线国产 | 黄色午夜剧场 | 国产精品一区二区日韩 | 真人一级毛片免费 | 国产精品视频成人 | 毛片在线免费观看网址 | 国产一区二区不卡 | 美女亚洲综合 | 2021国产精品 |