洞察探索小程序支付功能实现的最佳策略,如何通过FinClip技术简化支付流程并提升用户体验,助力企业数字化转型
546
2023-05-18
Springmvc自定义异常处理器实现流程解析
当dispatchServlet接收到controller抛出的异常时,会将异常交由 HandlerExceptionResolver
异常处理器处理!我们可以创建自定义异常处理器实现该接口来处理自定义异常
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 {
// 如果是运行时异常,则取错误堆栈,从堆栈中获取异常信息
Writer out = new StringWriter();
PrintWriter s = new PrintWriter(out);
exception.printStackTrace(s);
msg = out.toString();
}
// 把错误信息发给相关人员,邮件,短信等方式
// TODO
// 返回错误页面,给用户友好页面显示错误信息
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject(JALyegb"msg", msg);
modelAndView.setViewName("error");
return modelAndView;
}
}
3)在springmvc.xml中配置异常处理器
id="customHandleException" class="cn.itcast.ssm.exception.CustomHandleException"/> 4)定制错误页面 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
id="customHandleException" class="cn.itcast.ssm.exception.CustomHandleException"/>
4)定制错误页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
5)测试异常处理
@RequestMapping(value = "/item/itemlist.action")
public ModelAndView itemList() throws MyException{
List
if(true){
throw new MyException("商品列表不能为空!!");
}
ModelAndView mav = new ModelAndView();
mav.addObject("itemList", list);
mav.setViewName("itemList");
return mav;
}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~