Controller增强,全局异常处理类

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
@Slf4j
public 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值