<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                首先我們來了解一下為什么要進行自定義異常的處理 我們還是和以前一樣在service當中拋出RuntimeException的報錯 ![](https://img.kancloud.cn/bc/83/bc830fdfd430def74f7f9ff2bf80f09e_1726x638.png) 這個時候就會走我們前面定義的統一異常處理的類當中去 ![](https://img.kancloud.cn/bb/3b/bb3b30f580483c92d661997475be7611_1268x720.png) 然后返回給前端的結果就是這樣的 ![](https://img.kancloud.cn/ee/26/ee26ab5ba0816701249e69970e0a0aef_1311x336.png) 這樣的返回結果對于前端來說是非常不友好的 ### 所以我們需要自定義異常類,遵守的原則就是:業務上的錯誤直接返回錯誤提示信息,如果是系統的報錯比如mysql主鍵沖突等則不給前端返回具體的報錯代碼而是返回系統報錯請聯系管理員,再由后端程序員去排查具體的報錯原因看日志!!! ### 所以我們就得要自定義異常處理來處理業務上的各種可能出現的錯誤 ### 首先在common公共模塊創建exception來存放自定義異常類所需要用到的枚舉類 ![](https://img.kancloud.cn/7d/7a/7d7a2cad9dc9ab2efcda2f6078da17ce_1040x918.png) 然后再去創建自定義異常類BusinessException ![](https://img.kancloud.cn/07/62/07624bc2e43c6d7593eb868eddfba3a4_1457x733.png) 這樣我們就可以在枚舉類當中寫很多的自定義報錯信息比如: ![](https://img.kancloud.cn/bd/f2/bdf23cb2ea231604c878940fc39d70a4_1760x1430.png) 每一個`MEMBER_MOBILE_EXIST("手機號已注冊") ` `MEMBER_MOBILE_NOT_EXIST("請先獲取短信驗證碼")`...**都是這個枚舉類BusinessExceptionEnum的實例**!!! ### ![](https://img.kancloud.cn/8c/d2/8cd2fa76b24929108a1adfaa8e1c617b_1687x966.png) ### **然后我們就可以在common公共模塊當中的ControllerExceptionHandler統一異常處理類當中來加上我們自定義的業務異常處理了** ![](https://img.kancloud.cn/00/3d/003d7b977eb10220a2eca336e696350f_1218x977.png) ### **我們重點來講解一下枚舉類和自定義異常類之間的關系和使用** ### ![](https://img.kancloud.cn/d0/9f/d09fa862e62f7e39b0bc6048adc07cd7_1552x972.png) ### ![](https://img.kancloud.cn/b9/28/b928b2dbed503e7ee956069aa52c124f_1673x872.png) ### **我們測試一下如果發生系統異常的情況** ![](https://img.kancloud.cn/3d/21/3d21960232c6d1c028e88d432e0a6a5d_1305x737.png) ### ![](https://img.kancloud.cn/7c/47/7c4725e97045925f662877a0be520e8f_1680x979.png) ### 當然你也可以打開commonResp.setContent(e.getMessage())來獲取到具體的報錯日志信息 ### **我們再測試一下如果發生業務異常的情況** ![](https://img.kancloud.cn/80/b8/80b8a332316e4d9960348cb625577e1e_1686x963.png) ![](https://img.kancloud.cn/32/ba/32bae3afbef3031ee401fbdde41ef199_1197x919.png) 前端給出了友好的提示并且日志當中也記錄了業務異常信息 ![](https://img.kancloud.cn/90/46/9046de0fc105091d40df13240aee93ae_1785x773.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看