controller
public String testSys() throws SysException {
System.out.println("testSys执行了");
try{
int a = 1/0;
}catch (Exception e){
e.printStackTrace();
throw new SysException("testSys出现错误");
}
return "success";
}
自定义exception
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;
}
}
异常处理器handleExceptionResolver
public class SysExceptionResolver implements HandlerExceptionResolver {
@Override
public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
//获取异常对象
SysException sysException = null;
if (e instanceof SysException){
sysException = (SysException)e;
}else{
sysException = new SysException("系统正在维护");
}
//创建ModelAndView对象
ModelAndView mv = new ModelAndView();
mv.addObject("errorMsg",sysException);
mv.setViewName("error");
return mv;
}
}
xml
<!--配置异常处理器-->
<bean id="sysResolver" class="com.ect.exception.SysExceptionResolver"></bean>
运行结果