說到SpringMVC中的反常處理,就不得不提提java基礎(chǔ)中的反常了,相信我們也都不陌生,這里就不再概述,具體可參閱,不淋漓盡致地catch我不爽快!其次再來談?wù)凷pringMVC中的反常處理。
@
我們都知道我們所謂的反常首要包括兩類:編譯反常和運轉(zhuǎn)時反常RuntimeException,前者經(jīng)過捕獲反常然后獲取反常信息,后者首要經(jīng)過規(guī)范代碼開發(fā)、測試經(jīng)過手段減少運轉(zhuǎn)時反常的發(fā)生。
實際上SpringMVC中的反常處理的原理便是:我們編寫的dao、service、controller出現(xiàn)反常都經(jīng)過throwsException向上拋出,最終由前端控制器交由HandlerExceptionResolver反常處理器進(jìn)行反常處理!
1、搭建編碼剖析
接下來便是編碼階段。其首要便是自定義一個反常類和對應(yīng)反常頁面,中心則是HandlerExceptionResolver反常處理器,需要自定義一個類實現(xiàn)HandlerExceptionResolver接口并編寫其中的辦法resolveException,然后在springmvc.xml中裝備。最終便是一些請求呼應(yīng)的事務(wù)邏輯以及頁面的搭建了。
2、編寫反常類
編寫一個自定義反常類,繼承Exception類
//自定義反常類packagecom.Exception;
publicclassSysExceptionextendsException{//反常提示信息字段privateStringmessage;
publicSysException(Stringmessage){this.message=message;
}
@Override
publicStringgetMessage(){returnmessage;
}
publicvoidsetMessage(Stringmessage){this.message=message;
}
}
3、編寫自定義反常處理器
簡單來說便是自定義一個類實現(xiàn)HandlerExceptionResolver接口并編寫其中的辦法resolveException
packagecom.Exception;importorg.springframework.web.servlet.HandlerExceptionResolver;importorg.springframework.web.servlet.ModelAndView;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;
publicclassSysExceptionResolverimplementsHandlerExceptionResolver{
@Override
publicModelAndViewresolveException(HttpServletRequesthttpServletRequest,HttpServletResponsehttpServletResponse,Objecto,Exceptione){//獲取到反常目標(biāo)SysExceptionsysException=null;if(einstanceofSysException){
sysException=(SysException)e;
}else{
sysException=newSysException(“系統(tǒng)正在維護(hù)升級ing….”);
}//創(chuàng)立ModelAndView目標(biāo)ModelAndViewmv=newModelAndView();//使用“errorMsg”存入提示信息mv.addObject(“errorMsg”,sysException.getMessage());
mv.setViewName(“error”);returnmv;
}
}
4、在springmvc.xml中裝備反常處理器
<beanid=”sysExceptionResolver”class=”com.Exception.SysExceptionResolver”/>
5、編寫Error.jsp、index.jsp頁面
Error.jsp頁面
<%@pagecontentType=”text/html;charset=UTF-8″language=”java”isELIgnored=”false”%><html><head><title>Titletitle>head><body>${errorMsg}body>html>
index.jsp頁面
<%@pagecontentType=”text/html;charset=UTF-8″language=”java”%><html><head><title>Titletitle>head><body><h3>反常處理h3><ahref=”user/testExcepting”>反常處理鏈接a>body>html>
6、編寫collector代碼模仿反常
@RequestMapping(“/user/testExcepting”)
publicStringtestException()throwsSysException{try{
inta=1/0;
}catch(Exceptione){
e.printStackTrace();thrownewSysException(“查詢出現(xiàn)錯誤了…”);
}return”success”;
}
7、運轉(zhuǎn)效果
在這里插入圖片描繪
OK,如上效果說明SpringMVC反常處理成功!
假如本文對你有一點點協(xié)助,那么請點個贊唄,謝謝~
廣州天河區(qū)珠江新城富力盈力大廈北塔2706
020-38013166(網(wǎng)站咨詢專線)
400-001-5281 (售后服務(wù)熱線)
深圳市坂田十二橡樹莊園F1-7棟
Site/ http://www.szciya.com
E-mail/ itciya@vip.163.com
品牌服務(wù)專線:400-001-5281
長沙市天心區(qū)芙蓉中路三段398號新時空大廈5樓
聯(lián)系電話/ (+86 0731)88282200
品牌服務(wù)專線/ 400-966-8830
旗下運營網(wǎng)站:
Copyright ? 2016 廣州思洋文化傳播有限公司,保留所有權(quán)利。 粵ICP備09033321號