最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java?超詳細(xì)講解Spring?MVC異常處理機(jī)制

 更新時(shí)間:2022年04月06日 11:57:52   作者:求不脫發(fā)  
Spring?MVC中提供了一個(gè)通用的異常處理機(jī)制,它提供了一個(gè)成熟、簡潔并且清晰的異常處理方案。當(dāng)使用Spring?MVC開發(fā)Web應(yīng)用時(shí),利用這套現(xiàn)成的機(jī)制進(jìn)行異常處理也更加自然并且高效

異常處理機(jī)制流程圖

系統(tǒng)中異常包括兩類:

預(yù)期異常通過捕獲異常從而獲取異常信息。
運(yùn)行時(shí)異常RuntimeException主要通過規(guī)范代碼開發(fā)、測試等手段減少運(yùn)行時(shí)異常的發(fā)生。

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

異常處理的兩種方式

  • 使用Spring MVC提供的簡單異常處理器SimpleMappingExceptionResolver。這種方式簡單快捷,使用方便。
  • 實(shí)現(xiàn)Spring的異常處理接口HandlerExceptionResolver 自定義自己的異常處理器。這種方式可根據(jù)具體的項(xiàng)目需求,提示對(duì)應(yīng)的異常信息。

簡單異常處理器SimpleMappingExceptionResolver

<bean 
class=“org.springframework.web.servlet.handler.SimpleMappingExceptionResolver”>
 <property name=“defaultErrorView” value=“error”/> <!-- 默認(rèn)錯(cuò)誤視圖-->
 <property name=“exceptionMappings”> 
   <map> <!--異常類型 錯(cuò)誤視圖-->
    <entry key="com.project.exception.MyException" value="error"/>
    <entry key="java.lang.ClassCastException" value="error"/>
   </map>
 </property>
</bean>

自定義異常處理步驟

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

public class MyExceptionResolver implements HandlerExceptionResolver {
@Override
    public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
        //處理異常的代碼實(shí)現(xiàn)
        //創(chuàng)建ModelAndView對(duì)象
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("exceptionPage");
        return modelAndView;
    }
}

② 配置異常處理器

<bean id="exceptionResolver" 
class="com.project.exception.MyExceptionResolver"/>

③ 編寫異常頁面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>自定義異常界面</title>
</head>
 <body>
    自定義異常提示信息
 </body>
</html>

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

@RequestMapping("/quick")
@ResponseBody
public void quickMethod22() throws IOException, ParseException {
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
    simpleDateFormat.parse("123456");
}

本章小結(jié)

異常處理方式

  • 配置簡單異常處理器SimpleMappingExceptionResolver
  • 自定義異常處理器

自定義異常處理步驟

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

② 配置異常處理器

③ 編寫異常頁面

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

到此這篇關(guān)于Java 超詳細(xì)講解Spring MVC異常處理機(jī)制的文章就介紹到這了,更多相關(guān)Java Spring MVC 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JVM參數(shù)-Xms和-Xmx的作用及說明

    JVM參數(shù)-Xms和-Xmx的作用及說明

    這篇文章主要介紹了JVM參數(shù)-Xms和-Xmx的作用及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Java jar打包工具使用方法步驟解析

    Java jar打包工具使用方法步驟解析

    這篇文章主要介紹了Java jar打包工具使用方法步驟解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 探索Java中private方法添加@Transactional事務(wù)未生效原因

    探索Java中private方法添加@Transactional事務(wù)未生效原因

    你又遇到過明明給private方法添加了@Transactional但是事務(wù)依然沒有生效的情況嗎,具體原因本篇文章將詳細(xì)告訴你,有需要的朋友跟著小編往下看吧
    2021-11-11
  • MyBatis中的自定義TypeHandler詳解

    MyBatis中的自定義TypeHandler詳解

    這篇文章主要介紹了MyBatis中的自定義TypeHandler詳解,定義的?typeHandler?泛型為?String,顯然我們要把數(shù)據(jù)庫的數(shù)據(jù)類型轉(zhuǎn)化為?String?型,然后實(shí)現(xiàn)設(shè)置參數(shù)和獲取結(jié)果集的方法,需要的朋友可以參考下
    2023-07-07
  • Java使用entrySet方法獲取Map集合中的元素

    Java使用entrySet方法獲取Map集合中的元素

    這篇文章主要為大家詳細(xì)介紹了Java使用entrySet方法獲取Map集合中的元素,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Java中的Semaphore信號(hào)量簡析

    Java中的Semaphore信號(hào)量簡析

    這篇文章主要介紹了Java中的Semaphore信號(hào)量簡析,Semaphore:信號(hào)量,用來限制能同時(shí)訪問共享資源的線程上限,使用Semaphore實(shí)現(xiàn)簡單連接池,對(duì)比享元模式下的實(shí)現(xiàn)(用wait和notify),性能和可讀性要更好,需要的朋友可以參考下
    2023-12-12
  • Java Session會(huì)話追蹤原理深入分析

    Java Session會(huì)話追蹤原理深入分析

    web開發(fā)階段我們主要是瀏覽器和服務(wù)器之間來進(jìn)行交互。瀏覽器和服務(wù)器之間的交互就像人和人之間進(jìn)行交流一樣,但是對(duì)于機(jī)器來說,在一次請(qǐng)求之間只是會(huì)攜帶著本次請(qǐng)求的數(shù)據(jù)的,但是可能多次請(qǐng)求之間是會(huì)有聯(lián)系的,所以提供了會(huì)話機(jī)制
    2022-11-11
  • 看過就懂的java零拷貝及實(shí)現(xiàn)方式詳解

    看過就懂的java零拷貝及實(shí)現(xiàn)方式詳解

    這篇文章主要為大家詳細(xì)的介紹了什么是零拷貝,傳統(tǒng)的IO執(zhí)行流程,零拷貝相關(guān)的知識(shí)點(diǎn)回顧,零拷貝實(shí)現(xiàn)的幾種方式及java提供的零拷貝方式相關(guān)內(nèi)容,有需要的朋友可以借鑒參考下
    2022-01-01
  • Java字節(jié)碼操縱框架ASM圖文實(shí)例詳解

    Java字節(jié)碼操縱框架ASM圖文實(shí)例詳解

    這篇文章主要為大家介紹了Java字節(jié)碼操縱框架ASM圖文實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • JavaWeb項(xiàng)目實(shí)戰(zhàn)之表白墻和在線相冊

    JavaWeb項(xiàng)目實(shí)戰(zhàn)之表白墻和在線相冊

    這篇文章主要給大家介紹了關(guān)于JavaWeb項(xiàng)目實(shí)戰(zhàn)之表白墻和在線相冊的相關(guān)資料,JavaWeb表白墻是一款基于JavaWeb技術(shù)開發(fā)的表白墻應(yīng)用,用戶可以在上面發(fā)布表白信息,也可以查看其他用戶的表白信息,需要的朋友可以參考下
    2023-03-03

最新評(píng)論

宣汉县| 合肥市| 准格尔旗| 大方县| 白水县| 滕州市| 榆树市| 彩票| 黑水县| 招远市| 皋兰县| 双流县| 拜泉县| 雷州市| 那坡县| 扎赉特旗| 云南省| 宜兰县| 民丰县| 武威市| 英超| 库尔勒市| 叙永县| 伊宁市| 那曲县| 汕尾市| 夏津县| 南安市| 大兴区| 禹城市| 吴桥县| 泸西县| 靖边县| 城固县| 建德市| 石屏县| 勃利县| 田阳县| 曲松县| 铁岭市| 肥城市|