说到SpringMVC中的反常处理,就不得不提提java基础中的反常了,相信我们也都不陌生,这里就不再概述,具体可参阅,不淋漓尽致地catch我不爽快!其次再来谈谈SpringMVC中的反常处理。
@
我们都知道我们所谓的反常首要包括两类:编译反常和运转时反常RuntimeException,前者经过捕获反常然后获取反常信息,后者首要经过规范代码开发、测试经过手段减少运转时反常的发生。
实际上SpringMVC中的反常处理的原理便是:我们编写的dao、service、controller出现反常都经过throwsException向上抛出,最终由前端控制器交由HandlerExceptionResolver反常处理器进行反常处理!
1、搭建编码剖析
接下来便是编码阶段。其首要便是自定义一个反常类和对应反常页面,中心则是HandlerExceptionResolver反常处理器,需要自定义一个类实现HandlerExceptionResolver接口并编写其中的办法resolveException,然后在springmvc.xml中装备。最终便是一些请求呼应的事务逻辑以及页面的搭建了。
2、编写反常类
编写一个自定义反常类,继承Exception类
//自定义反常类packagecom.Exception;
publicclassSysExceptionextendsException{//反常提示信息字段privateStringmessage;
publicSysException(Stringmessage){this.message=message;
}
@Override
publicStringgetMessage(){returnmessage;
}
publicvoidsetMessage(Stringmessage){this.message=message;
}
}
3、编写自定义反常处理器
简单来说便是自定义一个类实现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){//获取到反常目标SysExceptionsysException=null;if(einstanceofSysException){
sysException=(SysException)e;
}else{
sysException=newSysException(“系统正在维护升级ing….”);
}//创立ModelAndView目标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(“查询出现错误了…”);
}return”success”;
}
7、运转效果
在这里插入图片描绘
OK,如上效果说明SpringMVC反常处理成功!
假如本文对你有一点点协助,那么请点个赞呗,谢谢~
广州天河区珠江新城富力盈力大厦北塔2706
020-38013166(网站咨询专线)
400-001-5281 (售后服务热线)
品牌服务专线:400-001-5281
长沙市天心区芙蓉中路三段398号新时空大厦5楼
联系电话/ (+86 0731)88282200
品牌服务专线/ 400-966-8830
旗下运营网站:
Copyright © 2016 广州思洋文化传播有限公司,保留所有权利。 粤ICP备09033321号