zoukankan      html  css  js  c++  java
  • Spring MVC异常统一处理

    package com.shzq.common.exception;

    import java.io.PrintWriter;
    import java.io.StringWriter;
    import java.util.HashMap;

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

    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.web.servlet.ModelAndView;
    import org.springframework.web.servlet.handler.SimpleMappingExceptionResolver;

    import com.alibaba.fastjson.JSONObject;
    import com.shzq.common.utils.ResultUtils;


    /**
    *Exception 捕获类 把相关Exception写入到日志文件中
    * */
    public class ExceptionHandler extends SimpleMappingExceptionResolver {

    private static final Logger logger = LoggerFactory.getLogger(ExceptionHandler.class);

    protected ModelAndView doResolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {

    try {
    HashMap<String, Object> resultMap = ResultUtils.error("404", "系统异常,请联系相关人员!");
    JSONObject resultObj = new JSONObject(resultMap);

    response.setContentType("text/json; charset=utf-8");
    response.getWriter().write(resultObj.toJSONString());
    //将异常栈信息记录到日志中
    logger.error(getTrace(ex));
    response.getWriter().flush();
    } catch ( Exception e ) {

    e.printStackTrace();
    }

    return null;

    }

    public static String getTrace(Throwable t) {
    StringWriter stringWriter = new StringWriter();
    PrintWriter writer = new PrintWriter(stringWriter);
    t.printStackTrace(writer);
    StringBuffer buffer= stringWriter.getBuffer();
    return buffer.toString();
    }
    }

     <bean id="exceptionHandler" class="com.shzq.common.exception.ExceptionHandler"/>  applicationcontext.xml配置 或者是@Component

    springmvc 最主要的 是实现 HandlerExceptionResolver 接口

  • 相关阅读:
    访问者模式:男人女人区别
    享元模式:开发多个网站实例
    中介者模式:联合国实例
    职责链模式:加薪实例
    命令模式:烤羊肉串实例
    桥接模式:手机软件实例
    单例模式
    组合模式:公司管理系统实例
    备忘录模式:游戏进度实例
    适配器模式:篮球翻译实例
  • 原文地址:https://www.cnblogs.com/zxf330301/p/6554798.html
Copyright © 2011-2022 走看看