博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Controller增强,全局异常处理类
阅读量:6821 次
发布时间:2019-06-26

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

hot3.png

package com.river.exception;import lombok.extern.slf4j.Slf4j;import org.apache.commons.lang3.ArrayUtils;import org.springframework.web.bind.annotation.ControllerAdvice;import org.springframework.web.bind.annotation.ExceptionHandler;import org.springframework.web.bind.annotation.ResponseBody;import javax.servlet.http.HttpServletRequest;import java.util.Arrays; /**   * @Description: Controller增强,全局异常处理类   *   * @Author: jc   * @Date: 11:18 2018/7/18   */@ControllerAdvice@ResponseBody@Slf4jpublic class GlobalExceptionHandler {    @ExceptionHandler(value = Exception.class)    public String allExceptionHandler(HttpServletRequest request, Exception exception) throws Exception {        StringBuilder sb = new StringBuilder("\n{");        request.getParameterMap().entrySet().forEach(e -> {            sb.append("\"" + e.getKey() + "\"" + ":");            if (ArrayUtils.isEmpty(e.getValue())) {                sb.append("null");            } else if (e.getValue().length == 1) {                sb.append("\"" + Arrays.stream(e.getValue()).findFirst().get() + "\"");            } else if (e.getValue().length > 1) {                sb.append("[" + Arrays.stream(e.getValue()).reduce((p1, p2) -> "\"" + p1 + "\",\"" + p2 + "\"").get() + "]");            }            sb.append(",");        });        String params = sb.substring(0, sb.length() - 1) + "}";        log.info("\n{\n  \"RequestUrl\":\"" + request.getServletPath() + "\",\n  \"RequestParams\":  " + params + ",\n  \"ExceptionDetail\":\"" + exception.getMessage() + "\"\n}");        exception.printStackTrace();        return "服务器异常,请联系管理员!";    }}

转载于:https://my.oschina.net/JackieRiver/blog/1858650

你可能感兴趣的文章
2018 MAC下安装Redis和Redis可视化工具RDM并连接Redis
查看>>
visual studio用"查找替换"来删掉源代码中所有//方式的纯注释和空行
查看>>
PHP数据类型
查看>>
第184天:js创建对象的几种方式总结
查看>>
第201天:js---实现继承的5种方式
查看>>
mysql 中varchar(50)最多能存多少个汉字
查看>>
TCP可靠传输及流量控制实现原理
查看>>
页面通过ajax传值到后台,后台返回值展示在页面输入框
查看>>
poi3.8 word
查看>>
react-router-dom实现全局路由登陆拦截
查看>>
STL基础3:map
查看>>
个人作业4——alpha阶段个人总结
查看>>
Oracle11g 新功能
查看>>
Groovy
查看>>
滑动窗口的最大值
查看>>
[转]BT常用渗透命令
查看>>
面向.Net程序员的前端优化
查看>>
HTTPS到底是个什么鬼?
查看>>
Yii框架中ActiveRecord使用Relations
查看>>
leetcode 55.跳跃游戏
查看>>