SpringMVC-異常處理

SpringMVC異常處理

1. 異常處理的思路

系統(tǒng)中異常包括兩類:編譯時(shí)異常和運(yùn)行時(shí)異常,前者通過捕獲異常從而獲得異常信息,后者主要通過規(guī)范代碼開發(fā)、測試通過手段減少運(yùn)行時(shí)異常的發(fā)生。

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

異常處理流程

2.實(shí)現(xiàn)步驟

????2.1 編寫異常類和錯誤頁面

package com.llb.exception;

/**異常類
 * Ceate By llb on 2019/8/21
 */
public class SysException extends Exception {

    private String msg ;

    public SysException(String msg) {
        this.msg = msg;
    }

    public String getMsg() {

        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }
}

錯誤頁面:


<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

<h1>網(wǎng)絡(luò)去旅行了</h1>
    ${msg}
</body>
</html>

????2.2 自定義異常處理器

package com.llb.exception;

import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 處理異常業(yè)務(wù)邏輯
 * Ceate By llb on 2019/8/21
 */
public class SysExceptionResolve implements HandlerExceptionResolver {
    @Override
    public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object obj, Exception ex) {
        //獲取到異常
        SysException e = null;

        if (ex instanceof SysException){
            e = (SysException) ex;
        }else{
            e = new SysException("系統(tǒng)正在維護(hù)");
        }

        //創(chuàng)建ModelAndView對象
        ModelAndView mv = new ModelAndView();
        mv.addObject("msg", e.getMsg());
        mv.setViewName("exception");

        return mv;
    }
}

????2.2 配置異常處理器
  springmvc.xml中配置:

  <!--配置異常處理器:自定義的異常處理器-->
    <bean id="sysExceptionResolve" class="com.llb.exception.SysExceptionResolve"></bean>

????2.3 運(yùn)行結(jié)果

運(yùn)行結(jié)果




源碼:github

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容