SpringBoot全局异常处理方式

SpringBoot全局错误处理的两种方式:注解法和覆盖路径法文章目录SpringBoot全局错误处理的两种方式:注解法和覆盖路径法引言SpringBoot全局错误处理第一种方法:注解法注解使用SpringBoot全局错误处理第二种方法:覆盖路径法实现逻辑

SpringBoot全局错误处理第一种方法:注解法注解

springboot提供两个注解来完成全局的错误处理

@ControllerAdvice

见名知意,控制器增强,就是用来增强controller的方法;主要用来定义@ExceptionHandler @lnitBinder@ModelAttribute方法( 本文只进ExceptionHandler,其他之后会写)作用在类上,适用于所有使用@RequestMapping方法相当于是一个针对controller层的AOP主要属性: basePackages,用来确定作用范围:@ControllerAdvice(basePackages =com.zhao.omservice.controller”

@ExceptionHandler

见名知意,异常处理:用来定义异常处理的方法:作用在方法上,和@ControllerAdvice配合使用(可以自己单独使用,作用在controler层的类方法上),用来配置controler层的异常处理,只针对抛出的异常主要属性只有一个: value,值为一个包含异常class的数组:@ExceptionHandlerlvalue =NoSuchMethodError.class,NoClassDefFoundError.classH,属性标识用来外理那种异常的方法个类里面可以有多个被@ExceptionHandler注释的方法被注释的方法,如果没有定义注解的value值,可以在方法参数中额外定义一个类型为任意异常的参数

SpringBoot全局错误处理第二种方法:覆盖路径法

此方法范围比较广,可以处理404错误

实现逻辑:

Spring Boot中,Controller中抛出的异常默认交给了 /error(可以通过属性server.error.path覆盖)来处理,应用程序可以将/error映射到一个特定的Controller中处理来代替Spring Boot的默认实现,可以使用继承 AbstractErrorController 来统一处理系统的各种异常。

实现方法

继承 AbstractErrorController

实现默认方法 public String getErrorPath()

实现构造方法,并加上@Controller注解

在类的内部写一个具体的错误处理方法,并将该方法映射路径为("/error");如果修改过就使用修改过的错误处理路径。

示例代码如下:构造方法以及实现默认方法参考BasicErrorController,该类是Spring Boot默认的处理,可以参考该类来实现自己的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值