手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

springboot 没有进入捕获全局异常方法

时间:2024-10-12 23:16:55

1、首先我们创建一个SpringBoot项目,引入spring-boot-starter-web等依赖,可以使用默认的logback日志系统也可以引入其他的日志系统,日志方便在捕获全局异常不起作用时查看问题原因。

springboot 没有进入捕获全局异常方法

2、接下来我们通过@ControllerAdvi罕铞泱殳ce和@ExceptionHandler注解来定义全局异常捕获机制。首先创建一个GlobalExceptionHandler类,然后在该类上加@ControllerAdvice注解,表明这是一个全局异常处理类。使用@ExceptionHandler(Exception.class)指定捕获的异常类型,这里捕获的是所有的异常,是一个兜底的异常处理。

springboot 没有进入捕获全局异常方法

3、我们可以使用自定义异常,以便不同的异常有不同的处理方式。例如我们常见一个ArgumentException类,这是一个参数异常类,继承了Exception类,该类中定义了两个参数,用于异常处理。

springboot 没有进入捕获全局异常方法

4、我们接下来看看自定义异常的使用,例如我们在方法中捕获该异常,然后返回给客户端错误信息。

springboot 没有进入捕获全局异常方法

5、我们在进行全局异常处理的时候,对捕获的异常类型进行判断,根据异常类型的不同,返回给客户端不同的错误信息,如下图所示。

springboot 没有进入捕获全局异常方法

6、全局异常处理只能处惯栲狠疲理应用级别的异常,对于容器级别的异常就处理不了了。例如在Filter中抛出的异常,那么使用@ControllerAdvice定义的全局异常处理机制就解决不了劲忧商偌了。在SpringBoot项目中,如果用户发起的请求报404、500等错误,那么会有一个默认的错误页面。

springboot 没有进入捕获全局异常方法
© 手抄报圈