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

SpringMVC基于配置的異常處理器

 更新時(shí)間:2022年05月28日 11:05:46   作者:把蘋果咬哭的測(cè)試筆記  
這篇文章主要為大家介紹了SpringMVC基于配置的異常處理器,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

一、基于配置的異常處理

SpringMVC 提供了一個(gè)處理控制器方法執(zhí)行過程中所出現(xiàn)的異常的接口:HandlerExceptionResolver。

HandlerExceptionResolver接口的實(shí)現(xiàn)類有:

DefaultHandlerExceptionResolver,這個(gè)是默認(rèn)使用的處理器,之前遇到的一些異常,其實(shí)springMVC 都已經(jīng)給我們處理過了。

SimpleMappingExceptionResolver,這個(gè)可以讓我們自定義異常處理。當(dāng)出現(xiàn)指定的異常,可以設(shè)置返回新的視圖。

使用SimpleMappingExceptionResolver,在springMVC的配置文件中:

<!--配置異常處理-->
  <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
      <property name="exceptionMappings">
          <props>
              <prop key="java.lang.ArithmeticException">error</prop>
          </props>
      </property>
  </bean>

示例里使用的一個(gè)處理運(yùn)算異常的類ArithmeticException,里面的值 error 表示異常后跳轉(zhuǎn)的視圖。

對(duì)應(yīng)的,新建一個(gè)error.html頁(yè):

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>error</title>
</head>
<body>
出現(xiàn)錯(cuò)誤
</body>
</html>

接下來,造一個(gè)異常:

@RequestMapping("/testExceptionHandler")
  public String testExceptionHandler() {
      System.out.println(1/0);
      return "success";
  }

正常情況下這個(gè)處理器會(huì)跳轉(zhuǎn)到 success 頁(yè),但是里面有個(gè) 1/0的異常,所以會(huì)按照配置跳轉(zhuǎn)到 error 頁(yè)。

重新部署,測(cè)試一下,訪問http://localhost:8080/springmvc/testExceptionHandler:

成功跳轉(zhuǎn)到 error 頁(yè)。

儲(chǔ)存異常信息

此外,還可以繼續(xù)屬性exceptionAttribute,設(shè)置一個(gè)key用來存放異常信息,默認(rèn)存在當(dāng)前的請(qǐng)求域中:

<!--配置異常處理-->
  <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
      <property name="exceptionMappings">
          <props>
              <prop key="java.lang.ArithmeticException">error</prop>
          </props>
      </property>
      <!--exceptionAttribute屬性設(shè)置一個(gè)屬性名,將出現(xiàn)的異常信息在請(qǐng)求域中進(jìn)行共享-->
      <property name="exceptionAttribute" value="ex"></property>
  </bean>

那么在 error 頁(yè)中就可以使用到ex來獲取異常信息了。

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>error</title>
</head>
<body>
出現(xiàn)錯(cuò)誤
<p th:text="${ex}"></p>
</body>
</html>

重新部署,刷新下頁(yè)面:

二、基于注解的異常處理

springmvc 同樣也提供了一套注解,通過注解方式也可以實(shí)現(xiàn)上述的異常處理。

新建一個(gè)控制器 ExceptionController:

//@ControllerAdvice將當(dāng)前類標(biāo)識(shí)為異常處理的組件
@ControllerAdvice
public class ExceptionController {
    //@ExceptionHandler 用于設(shè)置所標(biāo)識(shí)方法處理的異常
    @ExceptionHandler(value = {ArithmeticException.class, NullPointerException.class})
    public String testException(Exception ex, Model model){
        // ex表示當(dāng)前請(qǐng)求處理中出現(xiàn)的異常對(duì)象,放到請(qǐng)求域中
        model.addAttribute("ex", ex);
        return "error";
    }
}

@ControllerAdvice將當(dāng)前類標(biāo)識(shí)為異常處理的組件。

ex表示當(dāng)前請(qǐng)求處理中出現(xiàn)的異常對(duì)象,用Model放到請(qǐng)求域中。

現(xiàn)在注釋掉配置文件里的處理器,重新部署下,刷新http://localhost:8080/springmvc/testExceptionHandler:

依然可以。

以上就是SpringMVC基于配置的異常處理器的詳細(xì)內(nèi)容,更多關(guān)于SpringMVC異常處理器的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 解決java文件流處理異常 mark/reset not supported問題

    解決java文件流處理異常 mark/reset not supported問題

    這篇文章主要介紹了解決java文件流處理異常 mark/reset not supported問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • Springboot異常錯(cuò)誤處理解決方案詳解

    Springboot異常錯(cuò)誤處理解決方案詳解

    這篇文章主要介紹了Springboot異常錯(cuò)誤處理解決方案詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • SpringBoot利用EasyExcel實(shí)現(xiàn)導(dǎo)出數(shù)據(jù)

    SpringBoot利用EasyExcel實(shí)現(xiàn)導(dǎo)出數(shù)據(jù)

    EasyExcel是一個(gè)基于Java的、快速、簡(jiǎn)潔、解決大文件內(nèi)存溢出的Excel處理工具,它能讓你在不用考慮性能、內(nèi)存的等因素的情況下,快速完成Excel的讀、寫等功能看,本文就將介紹如何利用EasyExcel實(shí)現(xiàn)導(dǎo)出數(shù)據(jù),需要的朋友可以參考下
    2023-07-07
  • java swing編程入門代碼編寫(java編程入門)

    java swing編程入門代碼編寫(java編程入門)

    Swing是一個(gè)為Java設(shè)計(jì)的GUI工具包,是用來做UI界面的,大家看了下面的介紹就要吧自己做java界面了
    2013-12-12
  • Java函數(shù)式編程(十一):遍歷目錄

    Java函數(shù)式編程(十一):遍歷目錄

    這篇文章主要介紹了Java函數(shù)式編程(十一):遍歷目錄,本文是系列文章的第11篇,其它文章請(qǐng)參閱本文底部的相關(guān)文章,需要的朋友可以參考下
    2014-09-09
  • java多線程實(shí)現(xiàn)服務(wù)器端與多客戶端之間的通信

    java多線程實(shí)現(xiàn)服務(wù)器端與多客戶端之間的通信

    本篇文章主要介紹了java多線程實(shí)現(xiàn)服務(wù)器端與多客戶端之間的通信,介紹了多線程來實(shí)現(xiàn)服務(wù)器與多線程之間的通信的基本步驟,有需要的小伙伴可以參考下。
    2016-10-10
  • SpringBoot如何實(shí)現(xiàn)接口版本控制

    SpringBoot如何實(shí)現(xiàn)接口版本控制

    這篇文章主要介紹了SpringBoot如何實(shí)現(xiàn)接口版本控制,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java輸出多位小數(shù)的三種方法(附代碼)

    Java輸出多位小數(shù)的三種方法(附代碼)

    這篇文章主要給大家介紹了關(guān)于Java輸出多位小數(shù)的三種方法的相關(guān)資料,在實(shí)際工作中常常需要設(shè)定數(shù)字的輸出格式,如以百分比的形式輸出,或者設(shè)定小數(shù)位數(shù)等,需要的朋友可以參考下
    2023-07-07
  • 全面解析JTA 深度歷險(xiǎn)

    全面解析JTA 深度歷險(xiǎn)

    本文介紹了利用 JTA 深度歷險(xiǎn)的相關(guān)內(nèi)容,充分舉例說明JTA的原理和事務(wù)處理等相關(guān)內(nèi)容,十分詳細(xì),需要的朋友可以參考下。
    2017-09-09
  • springboot讀取resource配置文件生成容器對(duì)象的示例代碼

    springboot讀取resource配置文件生成容器對(duì)象的示例代碼

    這篇文章主要介紹了springboot讀取resource配置文件生成容器對(duì)象的示例代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07

最新評(píng)論