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 用于自定义异常,可以理解为异常拦截器

 





 

posted on 2022-07-03 19:07  周公  阅读(30)  评论(0编辑  收藏  举报

导航