博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring全局异常捕获
阅读量:5214 次
发布时间:2019-06-14

本文共 2639 字,大约阅读时间需要 8 分钟。

 

 

package org.xxx.ac.zpk.exception;import java.io.IOException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.http.HttpStatus;import org.springframework.http.MediaType;import org.springframework.web.servlet.HandlerExceptionResolver;import org.springframework.web.servlet.ModelAndView;import org.wpwl.ac.utils.JSONUtils;import org.wpwl.ac.zpk.entity.ApiResult;/** * 异常处理 * @author xxx * */public class ExceptionHandler implements HandlerExceptionResolver {    private static final Logger logger = LoggerFactory.getLogger(ExceptionHandler.class);    @Override    public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler,            Exception ex) {        ModelAndView mv = new ModelAndView();        /* 使用response返回 */        response.setStatus(HttpStatus.OK.value()); // 设置状态码        response.setContentType(MediaType.APPLICATION_JSON_VALUE); // 设置ContentType        response.setCharacterEncoding("UTF-8"); // 避免乱码        response.setHeader("Cache-Control", "no-cache, must-revalidate");        try {            ApiResult json = getExceptionResult(ex);            response.getWriter().write(JSONUtils.bean2Json(json));        } catch (IOException e) {            logger.error("与客户端通讯异常:" + e.getMessage(), e);        }        logger.debug("异常:" + ex.getMessage(), ex);        return mv;    }    private ApiResult getExceptionResult(Exception ex) {        ApiResult result;        if (ex instanceof WPException) {            result = ApiResult.err(ex.getMessage());        } else {            result = ApiResult.err("服务异常!");        }        return result;    }}

 

 

package org.wpwl.ac.zpk.exception;import javax.servlet.http.HttpServletRequest;import org.springframework.web.bind.annotation.ExceptionHandler;import org.springframework.web.bind.annotation.ResponseBody;import org.wpwl.ac.zpk.entity.ApiResult;public class ExceptionController {    //    private static final Logger logger = LoggerFactory.getLogger(BaseController.class);        @ExceptionHandler    @ResponseBody    public ApiResult exception(HttpServletRequest request, Exception e) {        //添加自己的异常处理逻辑,如日志记录           request.setAttribute("exceptionMessage", e.getMessage());  //        e.printStackTrace();//        logger.error(e.getMessage());        // 根据不同的异常类型进行不同处理        if(e instanceof WPException){            return ApiResult.err(e.getMessage());        }        else{            return ApiResult.err("服务异常!");           }    }  }

 

转载于:https://www.cnblogs.com/exmyth/p/5604046.html

你可能感兴趣的文章
String,StringBuffer与StringBuilder的区别?? .
查看>>
JavaScript(三) 数据类型
查看>>
移动端rem布局屏幕适配插件(放js中便可使用)
查看>>
Docker
查看>>
bzoj2259 [Oibh]新型计算机
查看>>
对位与字节的深度认识
查看>>
C++编程基础二 16-习题4
查看>>
MongoDB遇到的疑似数据丢失的问题。不要用InsertMany!
查看>>
服务器被疑似挖矿程序植入107.174.47.156,发现以及解决过程(建议所有使用sonatype/nexus3镜像的用户清查一下)...
查看>>
类型“XXX”的控件“XXXX”必须放在具有 runat=server 的窗体标记内。
查看>>
JQuery 学习
查看>>
session token两种登陆方式
查看>>
C# ArrayList
查看>>
IntelliJ IDEA 12集成Tomcat 运行Web项目
查看>>
java,多线程实现
查看>>
个人作业4-alpha阶段个人总结
查看>>
android smack MultiUserChat.getHostedRooms( NullPointerException)
查看>>
递归-下楼梯
查看>>
实用的VMware虚拟机使用技巧十一例
查看>>
监控工具之---Prometheus 安装详解(三)
查看>>