spring异常-全局异常处理

常见异常

在 Spring 开发中,常见的异常通常与框架配置、依赖注入、数据库操作、事务管理等相关。以下是常见的异常类型及其解决方法,以及如何实现全局统一异常处理。


1. 常见异常及解决方法

1.1 BeanCreationException
  • 原因:Bean 创建失败,通常是由于依赖注入问题或配置错误。
  • 解决方法
    • 检查 Bean 的依赖是否正确注入。
    • 确保配置文件或注解配置正确。
    • 查看堆栈信息,定位具体问题。
1.2 NoSuchBeanDefinitionException
  • 原因:Spring 容器中找不到指定的 Bean。
  • 解决方法
    • 检查 Bean 是否被正确扫描或配置。
    • 确保 @Component@Service@Repository 等注解正确使用。
    • 检查包扫描路径是否正确配置。
1.3 NullPointerException
  • 原因:空指针异常,通常是由于依赖注入失败或未初始化对象。
  • 解决方法
    • 确保依赖注入的 Bean 不为空。
    • 使用 @Autowired(required = false) 避免强制注入。
1.4 DataAccessException
  • 原因:数据库操作异常,通常是由于 SQL 错误或数据库连接问题。
  • 解决方法
    • 检查 SQL 语句是否正确。
    • 确保数据库连接配置正确。
    • 使用事务管理机制处理异常。
1.5 TransactionException
  • 原因:事务管理异常,通常是由于事务配置错误或数据库操作失败。
  • 解决方法
    • 检查 @Transactional 注解的使用是否正确。
    • 确保事务管理器配置正确。
1.6 HttpMessageNotReadableException
  • 原因:HTTP 请求体解析失败,通常是由于 JSON 格式错误或类型不匹配。
  • 解决方法
    • 检查请求体的 JSON 格式是否正确。
    • 确保请求参数与后端类型匹配。
1.7 MethodArgumentNotValidException
  • 原因:方法参数校验失败,通常是由于 @Valid 注解校验不通过。
  • 解决方法
    • 检查校验注解(如 @NotNull@Size)的使用是否正确。
    • 确保请求参数符合校验规则。

2. 全局统一异常处理

Spring 提供了多种方式实现全局统一异常处理,常用的方式包括:

2.1 使用 @ControllerAdvice@ExceptionHandler
  • 说明@ControllerAdvice 用于定义全局异常处理类,@ExceptionHandler 用于处理特定异常。

  • 示例

    @ControllerAdvice
    public class GlobalExceptionHandler {
         
    
        // 处理所有异常
        @ExceptionHandler(Exception.class)
        public ResponseEntity<String> handleException(Exception ex) {
         
            return 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我睡觉的时候一点都不困

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值