
/**
 * 文件名    ： BaseController.java
 * 版权       : XX科技有限公司。
 * 描述       : <描述>
 * 修改时间：2016年9月7日
 * 修改内容：<修改内容>
 */
package com.base;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ExceptionHandler;

import com.platform.utils.Configs;

/**
 * <一句话功能简述> 
 * <功能详细描述>
 * @author    chen
 * @version   [版本号，2016年9月7日]
 * @see       [相关类/方法]
 * @since     [产品/模块版本]
 */
public class BaseController { 
	
	/** log4j  */
	public final static Logger log = Logger.getLogger(BaseController.class);
	
    /**
     * <一句话功能简述> 基于@ExceptionHandler异常处理----全局异常处理
     * <功能详细描述>
     * @param request
     * @param ex 异常
     * @return
     * @see [类、类#方法、类#成员]
     */
    @ExceptionHandler  
    public Object exp(HttpServletRequest request, HttpServletResponse response,Exception ex) {  
    	log.error("URI"+request.getRequestURI());
        log.error("BaseController --exp " + ex);
        new CustomException("base_code_", ex);
        // 根据不同错误转向不同页面  
        if(ex instanceof CustomException) {
        	//返回异常信息
        	ModelMap modelMap = new ModelMap();
        	CustomException cuse = (CustomException) ex;
        	Map<String, String> errmsg = new HashMap<>();
        	errmsg.put("code", cuse.getCode());
        	errmsg.put("msg", cuse.getMsg());
        	log.error(cuse.getCode());
        	modelMap.addAllAttributes(errmsg);
        	response.setStatus(500);
            return modelMap;  
        } else {  
        	//其他错误则 调到指定页面
        	log.error(Configs.GLOBAL_EXP_NOT_CUSTOM, ex);
        	response.setStatus(500);
            return response;  
        }  
    }  

}  