非全局异常捕获方式(任意地方获取request与response)



package com.gilite.cn.qspcommon.handler;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.gilite.cn.qspmodle.Enums.RepStatusCode;
import com.gilite.cn.qspmodle.module.ResultEntity;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

/**

* @program: UnControllerExceptionHander

* @description: 非controller异常捕获方式

* @author: douxiaoliang

* @create: 2020-07-08 09:43

* @Version V1.0

**/

@Slf4j

public class UnControllerExceptionHander {

    public static void hander(ResultEntity resultEntity){

HttpServletResponse response = ((ServletRequestAttributes) RequestContextHolder

.getRequestAttributes()).getResponse();

response.setCharacterEncoding(“UTF-8”);

response.setContentType(“text/html;charset=utf-8”);

try (PrintWriter outputStream = response.getWriter()){

outputStream.write(new ObjectMapper().writeValueAsString(resultEntity));

} catch (IOException e) {

log.error(e.getMessage());

        }
    }
}