zoukankan      html  css  js  c++  java
  • SpringBoot优雅的全局异常处理

    代码编写

    SpringBoot的项目已经对有一定的异常处理了,但是对于我们开发者而言可能就不太合适了,因此我们需要对这些异常进行统一的捕获并处理。SpringBoot中有一个ControllerAdvice的注解,使用该注解表示开启了全局异常的捕获,我们只需在自定义一个方法使用ExceptionHandler注解然后定义捕获异常的类型即可对这些捕获的异常进行统一的处理。

    我们根据下面的这个示例来看该注解是如何使用吧。

    示例代码:

    import com.nuorui.common.domain.api.R;
    import org.springframework.http.converter.HttpMessageNotReadableException;
    import org.springframework.web.bind.annotation.ExceptionHandler;
    import org.springframework.web.bind.annotation.RestControllerAdvice;
    
    /**
     * 全局异常处理类
     *
     * @author: Fred
     * @email 453086@qq.com
     * @create: 2021-07-16 11:07
     */
    @RestControllerAdvice
    public class ExceptionsHandler {
    
        /**
         * 业务异常
         *
         * @param ex
         * @return
         */
        @ExceptionHandler(BizException.class)
        public R bizExceptionHandler(BizException ex) {
            return R.failed(ex.msg);
        }
    
        /**
         * 参数转换异常拦截
         * @param ex
         * @return
         */
        @ExceptionHandler(HttpMessageNotReadableException.class)
        public R exceptionHandler(HttpMessageNotReadableException ex) {
            return R.failed("参数格式异常!");
        }
    
    
    }

    自定义异常类

    然后我们在来自定义一个异常类,用于处理我们发生的业务异常。

    示例代码:

    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.Setter;
    import lombok.experimental.Accessors;
    
    /**
     * 业务异常处理类
     *
     * @author: Fred
     * @email 453086@qq.com
     * @create: 2021-07-16 11:07
     */
    @Data
    @AllArgsConstructor
    @Accessors(chain = true)
    public class BizException extends RuntimeException {
    
        @Setter
        protected int code;
    
        @Setter
        protected String msg;
    
        public BizException(String msg){
            this.msg = msg;
        }
    
    }
  • 相关阅读:
    Linux内核分析期中总结
    Linux内核分析期末总结
    《Linux内核设计与实现》第四章读书笔记
    《Linux内核分析》第八周 进程的切换和系统的一般执行过程
    《深入理解计算机系统》第七章读书笔记
    《Linux内核设计与实现》第三章读书笔记
    "Linux内核分析"第七周
    "Linux内核分析"第六周实验报告
    “Linux内核分析”第五周报告
    Linux实验四报告
  • 原文地址:https://www.cnblogs.com/fangts/p/15033114.html
Copyright © 2011-2022 走看看