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;
}
}