All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.yuweix.kuafu.core.exception.ExceptionHandler Maven / Gradle / Ivy

There is a newer version: 2.0.0
Show newest version
package com.yuweix.kuafu.core.exception;


import java.util.Map;
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;


/**
 * 通用异常处理方式
 * @author yuwei
 */
public class ExceptionHandler implements HandlerExceptionResolver {
	private static final Logger log = LoggerFactory.getLogger(ExceptionHandler.class);
	private ExceptionViewResolver viewResolver;
	private Map, String> errorMsgMap;
	private boolean showExceptionName;

	public void setViewResolver(ExceptionViewResolver viewResolver) {
		this.viewResolver = viewResolver;
	}

	public void setErrorMsgMap(Map, String> errorMsgMap) {
		this.errorMsgMap = errorMsgMap;
	}

	public void setShowExceptionName(boolean showExceptionName) {
		this.showExceptionName = showExceptionName;
	}

	@Override
	public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response
			, Object handler, Exception ex) {
		log.error("", ex);
		return viewResolver.createView(showMessage(ex));
	}

	private String showMessage(Exception ex) {
		Class aClz = ex.getClass();
		String msg = ex.getMessage();
		String defaultMsg = errorMsgMap == null ? null : errorMsgMap.get(aClz);

		if (msg != null && !"".equals(msg)) {
			return showExceptionName ? aClz.getName() + ": " + msg : msg;
		}
		if (defaultMsg != null && !"".equals(defaultMsg)) {
			return showExceptionName ? aClz.getName() + ": " + defaultMsg : defaultMsg;
		}
		return aClz.getName();
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy