欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java SpringMVC的自定義異常類

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

1. 異常處理的思路

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

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

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

image-20220312170306527

2. 自定義異常處理器

步驟分析:

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

2.配置異常處理器

3.編寫異常頁(yè)面

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

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

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

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

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

(3)編寫異常頁(yè)面

<html>
<head>
    <title>Title</title>
</head>
<body>
  <h2>這是一個(gè)錯(cuò)誤頁(yè)面</h2>
  <h5>錯(cuò)誤信息為:${error}</h5>
</body>
</html>

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

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

(5)測(cè)試結(jié)果

image-20220312170744238

3. web的處理異常機(jī)制

  • 當(dāng)請(qǐng)求狀態(tài)為404或者500,指定頁(yè)面跳轉(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注解返回中文亂碼問題, 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-04-04
  • Java常用正則表達(dá)式驗(yàn)證工具類RegexUtils.java

    Java常用正則表達(dá)式驗(yàn)證工具類RegexUtils.java

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

    Java鉤子方法概念原理詳解

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

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

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

    JAVA Vector源碼解析和示例代碼

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

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

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

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

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

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

    這篇文章主要介紹了JAVA線程sleep()和wait()詳解及實(shí)例的相關(guān)資料,探討一下sleep()和wait()方法的區(qū)別和實(shí)現(xiàn)機(jī)制,需要的朋友可以參考下
    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)系, 讓我們逐一來看它們的定義和使用場(chǎng)景,需要的朋友可以參考下
    2023-09-09
  • 三道java新手入門面試題,通往自由的道路--多線程

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

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

最新評(píng)論