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

Springmvc自定義異常處理器實(shí)現(xiàn)流程解析

 更新時(shí)間:2020年07月07日 11:32:34   作者:林汐-  
這篇文章主要介紹了Springmvc自定義異常處理器實(shí)現(xiàn)流程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

當(dāng)dispatchServlet接收到controller拋出的異常時(shí),會(huì)將異常交由 HandlerExceptionResolver

異常處理器處理!我們可以創(chuàng)建自定義異常處理器實(shí)現(xiàn)該接口來處理自定義異常

1) 自定義異常類

public class MyException extends Exception {
  // 異常信息
  private String message;
 
  public MyException() {
    super();
  }
 
  public MyException(String message) {
    super();
    this.message = message;
  }
 
  public String getMessage() {
    return message;
  }
 
  public void setMessage(String message) {
    this.message = message;
  }
 
}

2)自定義異常處理器

public class CustomHandleException implements HandlerExceptionResolver {
 
  @Override
  public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler,
      Exception exception) {
    // 定義異常信息
    String msg;
 
    // 判斷異常類型
    if (exception instanceof MyException) {
      // 如果是自定義異常,讀取異常信息
      msg = exception.getMessage();
    } else {
      // 如果是運(yùn)行時(shí)異常,則取錯(cuò)誤堆棧,從堆棧中獲取異常信息
      Writer out = new StringWriter();
      PrintWriter s = new PrintWriter(out);
      exception.printStackTrace(s);
      msg = out.toString();
 
    }
 
    // 把錯(cuò)誤信息發(fā)給相關(guān)人員,郵件,短信等方式
    // TODO
 
    // 返回錯(cuò)誤頁面,給用戶友好頁面顯示錯(cuò)誤信息
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.addObject("msg", msg);
    modelAndView.setViewName("error");
 
    return modelAndView;
  }
}

3)在springmvc.xml中配置異常處理器

<!-- 配置全局異常處理器 -->
<bean
id="customHandleException" class="cn.itcast.ssm.exception.CustomHandleException"/>

4)定制錯(cuò)誤頁面

<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
 
  <h1>系統(tǒng)發(fā)生異常了!</h1>
  <br />
  <h1>異常信息</h1>
  <br />
  <h2>${msg }</h2>
 
</body>
</html>

5)測(cè)試異常處理

@RequestMapping(value = "/item/itemlist.action")
public ModelAndView itemList() throws MyException{
    
    List<Items> list = itemService.selectItemsList();
    
    if(true){
      throw new MyException("商品列表不能為空??!");
    }
    
    ModelAndView mav = new ModelAndView();
    mav.addObject("itemList", list);
    mav.setViewName("itemList");
    return mav;
  }

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • RHEL6.5下JDK1.8安裝教程

    RHEL6.5下JDK1.8安裝教程

    這篇文章主要為大家詳細(xì)介紹了RHEL6.5下JDK1.8安裝教程的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • IDEA Ultimate2020.2版本配置Tomcat詳細(xì)教程

    IDEA Ultimate2020.2版本配置Tomcat詳細(xì)教程

    這篇文章主要介紹了IDEA Ultimate2020.2版本配置Tomcat教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Java幸運(yùn)28系統(tǒng)搭建數(shù)組的使用實(shí)例詳解

    Java幸運(yùn)28系統(tǒng)搭建數(shù)組的使用實(shí)例詳解

    在本篇文章里小編給大家整理了關(guān)于Java幸運(yùn)28系統(tǒng)搭建數(shù)組的使用實(shí)例內(nèi)容,有需要的朋友們可以參考學(xué)習(xí)下。
    2019-09-09
  • Java實(shí)現(xiàn)讀取Excel文件功能(EasyExcel初使用)

    Java實(shí)現(xiàn)讀取Excel文件功能(EasyExcel初使用)

    EasyExcel是一款基于Java語言的開源Excel解析工具,可以幫助我們快速、高效地讀取和寫入Excel文件,這篇文章主要給大家介紹了關(guān)于Java實(shí)現(xiàn)讀取Excel文件功能的相關(guān)資料,使用的是EasyExcel,需要的朋友可以參考下
    2024-07-07
  • java回調(diào)機(jī)制實(shí)例詳解

    java回調(diào)機(jī)制實(shí)例詳解

    這篇文章主要介紹了java回調(diào)機(jī)制實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • 關(guān)于logback.xml和logback-spring.xml的區(qū)別及說明

    關(guān)于logback.xml和logback-spring.xml的區(qū)別及說明

    這篇文章主要介紹了關(guān)于logback.xml和logback-spring.xml的區(qū)別及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • 詳細(xì)了解MVC+proxy

    詳細(xì)了解MVC+proxy

    Java有兩種代理方式,一種是靜態(tài)代理,另一種是動(dòng)態(tài)代理。對(duì)于靜態(tài)代理,其實(shí)就是通過依賴注入,對(duì)對(duì)象進(jìn)行封裝,不讓外部知道實(shí)現(xiàn)的細(xì)節(jié)。很多 API 就是通過這種形式來封裝的
    2021-07-07
  • Mybatis中強(qiáng)大的resultMap功能介紹

    Mybatis中強(qiáng)大的resultMap功能介紹

    這篇文章主要給大家介紹了關(guān)于Mybatis中強(qiáng)大的resultMap功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Mybatis具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • SpringBoot返回結(jié)果統(tǒng)一處理實(shí)例詳解

    SpringBoot返回結(jié)果統(tǒng)一處理實(shí)例詳解

    這篇文章主要為大家介紹了SpringBoot返回結(jié)果統(tǒng)一處理實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • SpringBoot 緩存 Caffeine使用解析

    SpringBoot 緩存 Caffeine使用解析

    這篇文章主要介紹了SpringBoot 緩存 Caffeine使用解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09

最新評(píng)論

鸡东县| 邢台市| 南木林县| 南召县| 龙泉市| 乐山市| 孝义市| 孝感市| 嘉义县| 项城市| 衡阳市| 丹巴县| 涪陵区| 英吉沙县| 荣昌县| 仁布县| 襄垣县| 南雄市| 青铜峡市| 东港市| 山阴县| 德化县| 樟树市| 浦城县| 三门县| 旅游| 雅江县| 滨州市| 锡林郭勒盟| 宝应县| 探索| 县级市| 即墨市| 手游| 云阳县| 九台市| 攀枝花市| 拜泉县| 尼玛县| 林州市| 仪陇县|