SpringMVC异常处理

末鹿安然 提交于 2020-03-29 06:25:53
 

1.1. 异常处理思路

系统中异常包括两类:预期异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发、测试通过手段减少运行时异常的发生。

系统的daoservicecontroller出现都通过throws Exception向上抛出,最后由springmvc前端控制器交由异常处理器进行异常处理,如下图:


------------------------------------------------------------------------------------------------------------------------

/**

 * 异常处理器的自定义的实现类

 * @author lx

 *

 */

public class CustomExceptionResolver implements HandlerExceptionResolver{

 

public ModelAndView resolveException(HttpServletRequest request, 

HttpServletResponse response, Object obj,

Exception e) {

// TODO Auto-generated method stub  发生异常的地方 Serivce层  方法  包名+类名+方法名(形参) 字符串

//日志    1.发布 tomcat war  Eclipse  2.发布Tomcat  服务器上  Linux  Log4j

 

ModelAndView mav = new ModelAndView();

//判断异常为类型

if(e instanceof MessageException){

//预期异常

MessageException me = (MessageException)e;

mav.addObject("error", me.getMsg());

}else{

mav.addObject("error", "未知异常");

}

mav.setViewName("error");

return mav;

}

 

}

----------------------------------------------------------

 package com.itheima.springmvc.exception;

 

public class MessageException extends Exception{

 

 

private String msg;

 

public MessageException(String msg) {

super();

this.msg = msg;

}

 

public String getMsg() {

return msg;

}

 

public void setMsg(String msg) {

this.msg = msg;

}

 

}

-----------------------------------------------------------------------------------------------
 

1.1. 异常处理器配置

springmvc.xml中添加:

<!-- 配置全局异常处理器 -->

<bean 

id="customHandleException"  class="cn.itcast.ssm.exception.CustomHandleException"/>

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!