一头扎进springboot之捕获全局异常

我们在写项目的过程中,遇到各种各样的异常都是很常见的,但是作为开发人员,是肯定不能将程序的异常暴露给用户的,我们需要对其进行友好提示,那么在springboot中,我们可以使用注解,在一个类中,把一些运行异常都写出来,这样方便项目在运行时更快速的捕捉到异常并给出提示

例如,我们在HelloController类中造一个运行错误出来,内容如下


那么我们在用浏览器访问该方法时一定会报错的


错误提示也是很明显的,不能除以0,那么我们去创建一个类,专门用来捕获异常,这样在项目运行时,就可以拦截到所有的异常了,内容如下

我们在类前加了一个@ControllerAdvice的注解,这个注解是controller的一个辅助类,最常用的就是作为全局异常处理的切面类

如果我们不是捕获json数据格式的异常时,将@ResponseBody这个注解去掉即可


当我们写下这个异常拦截器后,一旦程序发生异常,就会跑这个类来,那么我们再运行的时候,就是另外一个效果了


当然我们如果要捕获其他类型异常时,只要改变类型即可

刚才在写代码过程中,我犯了一个小小的错误,导致捕获异常类没有生效,就是我把类没有创建在controller层中,结果因为没有扫描到这个类,所以一直没起作用,后面发现了,所以想在这里提醒一下,当你写的代码没有生效时,去检查下自己写的类是否被springboot扫描了,好啦,今天的文章分享就到这里了


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Spring Boot 中,可以通过实现一个全局异常处理器来捕获应用程序中的异常,并对异常进行统一处理。 实现一个全局异常处理器的步骤如下: 1. 创建一个异常处理器类,用于处理应用程序中的异常。 ```java @ControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(Exception.class) public ResponseEntity<ErrorResponse> handleException(Exception ex) { ErrorResponse errorResponse = new ErrorResponse("500", ex.getMessage()); return new ResponseEntity<>(errorResponse, HttpStatus.INTERNAL_SERVER_ERROR); } } ``` 2. 在异常处理器类上加上 @ControllerAdvice 注解,表示这是一个全局异常处理器。 3. 在异常处理器类中定义异常处理方法,使用 @ExceptionHandler 注解指定要处理的异常类型。在异常处理方法中,可以处理异常并返回一个自定义的错误响应实体。 4. 在异常处理方法中使用 ResponseEntity 类来封装错误响应实体,并指定 HTTP 状态码。这里示例使用了 500 状态码。 5. 配置 Spring Boot 应用,使其能够扫描到异常处理器类。可以在启动类上加上 @ComponentScan 注解来指定扫描路径。 ```java @SpringBootApplication @ComponentScan(basePackages = "com.example.demo") public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } ``` 以上就是在 Spring Boot 中实现全局异常处理的步骤。通过实现全局异常处理器,可以有效地统一处理应用程序中的异常

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值