在Spring中,我们写一些业务逻辑的时候或许要抛出异常,这里也许你就纠结了,到底是抛出去还是捕获这个异常进行一些处理呢,这里我的理解是,如果异常发生对业务有影响(影响返回的数据)那么就采取捕获的措施,在catch里边写相关的逻辑,但是如果发生的是一些无关紧要的异常,那么我的建议是直接抛出,同时新建一个Spring的全局异常Handler来处理抛出的异常以及定制异常响应的页面!下边我直接给出代码!
package cn.e3mall.search.exception;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;
public class GlobalException implements HandlerExceptionResolver {
private static final Logger logger = LoggerFactory.getLogger(GlobalException.class);
@Override
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler,
Exception e) {
// TODO Auto-generated method stub
e.printStackTrace();
logger.error("系统发生异常",e);
//发邮件的话就用jmail
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("error/exception");
return modelAndView;
}
}
配合log4j就能持久化异常了,是不是更方便了!