Spring Boot的全局异常处理

本文介绍了Spring Boot如何使用@ControllerAdvice和@ExceptionHandler实现全局异常处理,以保持代码的整洁和可维护性。通过这种方式,可以在单独的类中定义一套异常处理机制,并应用到所有Controller,避免在每个Controller中分散处理异常。
摘要由CSDN通过智能技术生成

Spring Boot的全局异常处理

controller层方法首先对接收的参数进行校验,包括非空校验、数值范围校验、长度检验等;service层负责编写具体的业务代码,比如操作mysql、消息队列、redis等.为了代码的可维护性,controller层代码应该尽量简洁,验证一下参数,直接丢给service层处理即可,全局异常处理可以使代码更简洁(它可以让全局所有的异常定义在一个类中,而不是像try…catch似的一个分布在代码中一个异常位置处理一次)。


@ControllerAdvice+@ExceptionHandler实现全局异常处理

@ExceptionHandler+@ControllerAdvice的全局异常处理方式(诞生于Spring3.2。@ControllerAdvice可以把异常处理器(被@ExceptionHandler注解的方法)应用到所有的Controller,而不是单单的一个Controller类。全局异常处理的原理:在独立的一个类中,定义一套对各种异常的处理机制,然后用@ControllerAdvice注解该类,统一对不同位置的不同异常进行处理。

代码实践

1.在包A中创建处理异常的类(处理异常的类只能扫描到同一层级以及下一级中的文件,如果将该类放在web包中,将只能处理web包下的异常),这时便可以处理和A包同一级的web下的异常了:
2.自定义异常:

@ControllerAdvice
public class GlobalExceptionHandler {
   

    /**
     * 参数异常全局处理
     * */
    @ExceptionHandler(value = ParamsException.class)
    @ResponseBody
    public ResultInfo ParamsExceptionHandler(ParamsException paramsException){
   
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值