springMVC异常处理
2021-04-18 01:26
标签:sage bean str response imp void 执行 ceo dao 注:本篇的异常主要指的是controller、service和dao层中执行方法抛出的异常。 因为如果我们不处理异常,异常信息就会直接抛出给浏览器,于是浏览器页面就直接显示异常信息,这对用户来说是很不友好的。我们应该在发生错误时返回一个友好的错误提示页面展示给用户。 当dao或者其他层抛出异常时,异常会向上逐层抛出,最后抛出到浏览器。那么我们就可以在异常抛出到前端控制器(DispatcherServlet)的时候,编写异常处理器对异常进行拦截,经过异常处理器处理异常后,跳转到一个友好的错误提示页面并返回给浏览器 注意:异常处理器类必须实现HandlerExceptionResolver接口,并实现接口中的方法 方式一:用xml配置的方式 在springmvc.xml配置文件中加如bean标签,将刚刚编写的异常处理器类交给spring容器管理。 方式二:使用注解 在刚刚编写的异常处理器类上加上Component注解 例如: 这样就配置好了。 springMVC异常处理 标签:sage bean str response imp void 执行 ceo dao 原文地址:https://www.cnblogs.com/bear7/p/13298454.html 一、为什么要处理异常?
二,异常处理思路
三、实现步骤
1.编写自定义异常类
public class SysException extends Exception {
private String message;
public SysException(String message) {
this.message = message;
}
@Override
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
2.编写异常处理器类
public class SysExceptionResolver implements HandlerExceptionResolver {
@Override
public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception ex) {
SysException e = null;
if (ex instanceof SysException){
e = (SysException) ex;
}else {
e = new SysException("系统正在维护");
}
ModelAndView mv = new ModelAndView();
mv.addObject("errorMsg",ex.getMessage());
mv.setViewName("error");
return mv;
}
}
3.配置异常处理器(将异常处理器交给spring容器管理)
bean id="sysExceptionResolver" class="com.xj.exception.SysExceptionResolver"/>
@Component
public class SysExceptionResolver implements HandlerExceptionResolver {
}