SSM配置全局異常處理

在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就能持久化異常了,是不是更方便了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章