亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java SpringMVC的自定義異常類

 更新時間:2022年03月15日 15:43:43   作者:程序員阿紅  
這篇文章主要為大家詳細介紹了SpringMVC的自定義異常類,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

1. 異常處理的思路

在java中,對于異常的處理一般有兩種方式:

  • 一種在當(dāng)前方法捕獲處理(try-catch),這種處理方式會造成業(yè)務(wù)代碼和異常處理代碼的耦合。
  • 另一種是自己不處理,而是拋給調(diào)用者處理(throws),調(diào)用者在拋給它的調(diào)用者,也就是往上拋。這種方法的基礎(chǔ)上,衍生除了SpringMVC的異常處理機制。

系統(tǒng)的dao、service、controller出現(xiàn)都通過throws Exception向上拋出,最后由springmvc前端控制器交由異常處理器進行異常處理,如下圖:

image-20220312170306527

2. 自定義異常處理器

步驟分析:

1.創(chuàng)建異常處理器類實現(xiàn)handlerExceptionResolver

2.配置異常處理器

3.編寫異常頁面

4.測試異常跳轉(zhuǎn)

(1)創(chuàng)建異常處理器類實現(xiàn)handlerExceptionResolver

public class GlobalExeceptionResovler implements HandlerExceptionResolver {
    /**
     *
     * @param httpServletRequest
     * @param httpServletResponse
     * @param o:對應(yīng)的處理器
     * @param e;實際拋出的異常對象
     * @return
     */
    @Override
    public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
        ModelAndView model = new ModelAndView();
        //具體的異常處理 產(chǎn)生異常后,跳轉(zhuǎn)到一個最終的異常頁面
        model.addObject("error",e.getMessage());//得到錯誤信息
        model.setViewName("error");
        return model;
    }
}

(2)在Spring的配置文件配置異常處理器

<!--    定義錯誤異常頁面-->
    <bean id="globalExecptionResovler" class="com.weihong.excption.GlobalExeceptionResovler"/>
    

(3)編寫異常頁面

<html>
<head>
    <title>Title</title>
</head>
<body>
  <h2>這是一個錯誤頁面</h2>
  <h5>錯誤信息為:${error}</h5>
</body>
</html>

(4)測試異常跳轉(zhuǎn)

    @RequestMapping("/jumpErrorPage")
    public String jumpErrorPage(){
        int res = 10 / 0;
        return "success";
    }

(5)測試結(jié)果

image-20220312170744238

3. web的處理異常機制

  • 當(dāng)請求狀態(tài)為404或者500,指定頁面跳轉(zhuǎn)。
  • 在其web.xml配置如下:
<!--處理500異常-->
<error-page>
  <error-code>500</error-code>
  <location>/500.jsp</location>
</error-page>
<!--處理404異常-->
<error-page>
  <error-code>404</error-code>
  <location>/404.jsp</location>
</error-page>

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容! 

相關(guān)文章

  • SpringMVC中解決@ResponseBody注解返回中文亂碼問題

    SpringMVC中解決@ResponseBody注解返回中文亂碼問題

    這篇文章主要介紹了SpringMVC中解決@ResponseBody注解返回中文亂碼問題, 小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • Java常用正則表達式驗證工具類RegexUtils.java

    Java常用正則表達式驗證工具類RegexUtils.java

    相信大家對正則表達式一定都有所了解和研究,這篇文章主要為大家分享了Java 表單注冊常用正則表達式驗證工具類,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Java鉤子方法概念原理詳解

    Java鉤子方法概念原理詳解

    這篇文章主要介紹了Java鉤子方法概念原理詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • java servlet手機app訪問接口(三)高德地圖云存儲及檢索

    java servlet手機app訪問接口(三)高德地圖云存儲及檢索

    這篇文章主要為大家詳細介紹了java servlet手機app訪問接口(三),高德地圖云存儲及檢索,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • JAVA Vector源碼解析和示例代碼

    JAVA Vector源碼解析和示例代碼

    本文的學(xué)習(xí)方式是先對JAVA Vector有個整體認識,然后再學(xué)習(xí)它的源碼,最后再通過實例來學(xué)會使用。
    2013-11-11
  • IDEA中使用Typora編輯md文件的方法

    IDEA中使用Typora編輯md文件的方法

    這篇文章主要介紹了IDEA中使用Typora編輯md文件的方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • Java內(nèi)部類_動力節(jié)點Java學(xué)院整理

    Java內(nèi)部類_動力節(jié)點Java學(xué)院整理

    內(nèi)部類是指在一個外部類的內(nèi)部再定義一個類。下面通過本文給大家java內(nèi)部類的使用小結(jié),需要的朋友參考下吧
    2017-04-04
  • JAVA線程sleep()和wait()詳解及實例

    JAVA線程sleep()和wait()詳解及實例

    這篇文章主要介紹了JAVA線程sleep()和wait()詳解及實例的相關(guān)資料,探討一下sleep()和wait()方法的區(qū)別和實現(xiàn)機制,需要的朋友可以參考下
    2017-05-05
  • Java中GC與四種引用的關(guān)系詳解

    Java中GC與四種引用的關(guān)系詳解

    這篇文章主要介紹了Java中GC與四種引用的關(guān)系詳解,Java 中一共有 4 種類型的引用 : StrongReference、 SoftReference、 WeakReference 以及 PhantomReference這 4 種類型的引用與 GC 有著密切的關(guān)系, 讓我們逐一來看它們的定義和使用場景,需要的朋友可以參考下
    2023-09-09
  • 三道java新手入門面試題,通往自由的道路--多線程

    三道java新手入門面試題,通往自由的道路--多線程

    這篇文章主要為大家分享了最有價值的3道多線程面試題,涵蓋內(nèi)容全面,包括數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的題目、經(jīng)典面試編程題等,對hashCode方法的設(shè)計、垃圾收集的堆和代進行剖析,感興趣的小伙伴們可以參考一下
    2021-07-07

最新評論