springboot日常记录
springboot统一异常处理
package com.jlpay.mng.agent.config.asserts; import com.jlpay.commons.exception.JlpayException; import com.jlpay.mng.agent.model.response.BaseQueryResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestControllerAdvice; /** * 失败处理类 * * @author: heyaolei * @Date: 2022/6/14 */ @Slf4j @RestControllerAdvice public class ExceptionHandlerAdvice { /** * 处理业务异常 * * @param jlpayException * @return */ @ExceptionHandler(value = JlpayException.class) @ResponseBody public BaseQueryResponse exceptionHandler(JlpayException jlpayException) { log.error("业务异常:{}", jlpayException.getMessage()); BaseQueryResponse response = new BaseQueryResponse(); response.setRetCode(jlpayException.getCode()); response.setRetMsg(jlpayException.getMessage()); return response; } /** * 未知异常处理 * * @param exception * @return */ @ExceptionHandler(value = Exception.class) @ResponseBody public BaseQueryResponse exceptionHandler(Exception exception) { log.error("运行时异常:{}", exception.getMessage()); BaseQueryResponse response = new BaseQueryResponse(); response.setRetCode("01"); response.setRetMsg("请求失败,请稍后重试!"); return response; } }
@RestControllerAdvice 继承@ControllerAdvice 和@ResponseBody
@ControllerAdvice 是对Controller进行增强的,可以全局捕获spring mvc抛的异常。
@ResponseBody 将java对象转为json格式的数据。
@ExceptionHandler 用于自定义异常,可以理解为异常拦截器