1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢(xún)
      選擇下列產(chǎn)品馬上在線(xiàn)溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問(wèn)題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
      SpringMVC中怎么統(tǒng)一異常處理-創(chuàng)新互聯(lián)

      SpringMVC中怎么統(tǒng)一異常處理,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

      為周至等地區(qū)用戶(hù)提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及周至網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站制作、成都網(wǎng)站制作、周至網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶(hù)提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶(hù)的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

      一、需求

      • 一般項(xiàng)目中都需要作異常處理,基于系統(tǒng)架構(gòu)的設(shè)計(jì)考慮,使用統(tǒng)一的異常處理方法。

      • 系統(tǒng)中異常類(lèi)型有哪些?

      • 包括預(yù)期可能發(fā)生的異常、運(yùn)行時(shí)異常(RuntimeException),運(yùn)行時(shí)異常不是預(yù)期會(huì)發(fā)生的。

      • 針對(duì)預(yù)期可能發(fā)生的異常,在代碼手動(dòng)處理異常可以try/catch捕獲,可以向上拋出。

      • 針對(duì)運(yùn)行時(shí)異常,只能通過(guò)規(guī)范代碼質(zhì)量、在系統(tǒng)測(cè)試時(shí)詳細(xì)測(cè)試等排除運(yùn)行時(shí)異常。

      二、統(tǒng)一異常處理解決方案

      2.1 定義異常

      針對(duì)預(yù)期可能發(fā)生的異常,定義很多異常類(lèi)型,這些異常類(lèi)型通常繼承于Exception。

      這里定義一個(gè)系統(tǒng)自定義異常類(lèi):

      CustomException,用于測(cè)試。

      public class CustomException extends Exception {
        
        //異常信息
        private String message;
        
        public CustomException(String message){
          super(message);
          this.message = message;
          
        }
        public String getMessage() {
          return message;
        }
      
        public void setMessage(String message) {
          this.message = message;
        }
        
      }

      2.2 異常處理

      要在一個(gè)統(tǒng)一異常處理的類(lèi)中要處理系統(tǒng)拋出的所有異常,根據(jù)異常類(lèi)型來(lái)處理。

      統(tǒng)一異常處理的類(lèi)是什么?

      前端控制器DispatcherServlet在進(jìn)行HandlerMapping、調(diào)用HandlerAdapter執(zhí)行Handler過(guò)程中,如果遇到異常,進(jìn)行異常處理。

      在系統(tǒng)中自定義統(tǒng)一的異常處理器,寫(xiě)系統(tǒng)自己的異常處理代碼。

      統(tǒng)一異常處理器實(shí)現(xiàn)HandlerExceptionResolver接口。

      public class CustomExceptionResolver implements HandlerExceptionResolver {
      
        //前端控制器DispatcherServlet在進(jìn)行HandlerMapping、調(diào)用HandlerAdapter執(zhí)行Handler過(guò)程中,如果遇到異常就會(huì)執(zhí)行此方法
        //handler最終要執(zhí)行的Handler,它的真實(shí)身份是HandlerMethod
        //Exception ex就是接收到異常信息
        @Override
        public ModelAndView resolveException(HttpServletRequest request,
            HttpServletResponse response, Object handler, Exception ex) {
          //輸出異常
          ex.printStackTrace();
          
          //統(tǒng)一異常處理代碼
          //針對(duì)系統(tǒng)自定義的CustomException異常,就可以直接從異常類(lèi)中獲取異常信息,將異常處理在錯(cuò)誤頁(yè)面展示
          //異常信息
          String message = null;
          CustomException customException = null;
          //如果ex是系統(tǒng) 自定義的異常,直接取出異常信息
          if(ex instanceof CustomException){
            customException = (CustomException)ex;
          }else{
            //針對(duì)非CustomException異常,對(duì)這類(lèi)重新構(gòu)造成一個(gè)CustomException,異常信息為“未知錯(cuò)誤”
            customException = new CustomException("未知錯(cuò)誤");
          }
          
          //錯(cuò)誤 信息
          message = customException.getMessage();
          
          request.setAttribute("message", message);
      
          
          try {
            //轉(zhuǎn)向到錯(cuò)誤 頁(yè)面
            request.getRequestDispatcher("/WEB-INF/jsp/error.jsp").forward(request, response);
          } catch (ServletException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
          } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
          }
          
          return new ModelAndView();
        }
      
      }

      2.3 配置統(tǒng)一異常處理器

      
        

      2.4 異常處理邏輯

      • 根據(jù)不同的異常類(lèi)型進(jìn)行異常處理。

      • 系統(tǒng)自定義的異常類(lèi)是CustomException ,在controller方法中、service方法中手動(dòng)拋出此類(lèi)異常。

      • 針對(duì)系統(tǒng)自定義的CustomException異常,就可以直接從異常類(lèi)中獲取異常信息,將異常處理在錯(cuò)誤頁(yè)面展示。

      • 針對(duì)非CustomException異常,對(duì)這類(lèi)重新構(gòu)造成一個(gè)CustomException,異常信息為“未知錯(cuò)誤”,此類(lèi)錯(cuò)誤需要在系統(tǒng)測(cè)試階段去排除。

      • 在統(tǒng)一異常處理器CustomExceptionResolver中實(shí)現(xiàn)上邊的邏輯。

      看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)建站的支持。

      另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、建站服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。


      網(wǎng)頁(yè)名稱(chēng):SpringMVC中怎么統(tǒng)一異常處理-創(chuàng)新互聯(lián)
      文章鏈接:http://www.ef60e0e.cn/article/pipio.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        牙克石市| 滨州市| 聂拉木县| 景泰县| 通榆县| 双桥区| 册亨县| 霸州市| 金门县| 三穗县| 茶陵县| 胶南市| 长春市| 始兴县| 景德镇市| 西昌市| 张家川| 海丰县| 休宁县| 龙川县| 阜南县| 铜鼓县| 洪雅县| 来宾市| 炎陵县| 怀宁县| 新建县| 乌兰浩特市| 杭州市| 阜新| 法库县| 延寿县| 封开县| 集安市| 华亭县| 新乡县| 浠水县| 嘉禾县| 邻水| 周至县| 丹东市|