您的位置:首页 > 编程语言 > Java开发

springmvc拦截异常处理

2020-03-29 13:00 197 查看

controller层模拟异常

@Controller
@RequestMapping("/user")
public class UserController {

@RequestMapping("/testException")
public String testException() throws SysException{
System.out.println("testException执行了...");
//模拟异常
try {
int i = 1/0;
} catch (Exception e) {
e.printStackTrace();
//
throw new SysException("查询所有用户出现错误");
}

return "success";
}
}

spring.xml中配置拦截器另外需要配置实现
HandlerExceptionResolver接口

<!-- 配置异常处理器   -->
<bean id="sysExceptionResolver" class="cn.itcast.exception.SysExceptionResolver"/>
public class SysExceptionResolver implements HandlerExceptionResolver {

@Override
public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
//获取到异常对象
SysException ex = null;
if(ex instanceof SysException){
e = (SysException)ex;
}else{
e = new SysException("系统正在维护....");
}
ModelAndView view = new ModelAndView();
view.addObject("errorMsg",e.getMessage());
view.setViewName("error");
return view;
}
}

此类为了打印信息

public class SysException extends Exception{
/**
* 控制提示信息的
*/
private String message;

@Override
public String getMessage() { return message; }

public void setMessage(String message) { this.message = message; }

public SysException(String message) {
this.message = message;
}
}
  • 点赞 1
  • 收藏
  • 分享
  • 文章举报
qq_44801336 发布了54 篇原创文章 · 获赞 5 · 访问量 735 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: