常见异常及解决方法

一、NullPointerException

空指针异常,常见于:

  1. 入参。从客户端传来的参数,在未进行校验的情况下传入方法当中,其本身为null或其为对象时某些属性为null,进入方法后参与了方法的运行,导致程序出错。
  2. Sql语句返回值。从sql语句中返回的值,有null的可能性,当作参数传入方法时容易造成空指针异常。

解决方法:在传参时,第一时间对参数本身和参数的某些不能为空的属性进行校验,从Sql语句中返回的值,也要第一时间进行判空。

二、ArrayIndexOutOfBoundsException

数组下标越界异常,常见于取数组值时,输入的下标超过了数组的长度

解决方法:首先对数组进行判断,非空的情况下再判断下标是否在数组的长度范围内

三、IllegalArgumentException

非法参数异常,常见于传入了类型不一致的参数

解决方法:在传参之前确定方法所需的类型和传入的参数一致,倘若不确定,需及时抛出异常,标明具体非法参数

四、NumberFormatException

数字转换异常,常见于将字符串转换为数字时抛出

解决方法:在转换之前使用NumberUtils.isCreatable()进行判断是否可以转为数字

五、SQLException

SQL语句异常,常见于SQL语句执行时抛出

解决方法:确保sql语句的正确性,传入参数的正确性,使用@Param对传参进行绑定,避免混乱

六、NoSuchBeanDefinitionException

Spring容器找不到指定的Bean异常,常见于启动项目时注入或获取某个Bean,但Bean未找到时抛出

原因可能是:

  1. 忘记加上注解,如@Component、@Service、@Bean、@Controller
  2. Bean所在位置超出Spring组件扫描的范围,Spring扫描范围在主应用类所在包及其子包

解决方法:

  1. @ComponentScan(basePackages = "com.bbb.mycomponent")
  2. 在@SpringBootApplication( scanBasePackages = {"com.aaa.package"} )中添加路径

七、ClassNotFoundException

类未找到异常,类路径中找不到指定的类

解决方法:确保依赖导入正确

八、FileNotFoundException

文件找不到异常,未能找到指定路径的文件

解决方法:确保文件和路径正确及存在

九、NoUniqueBeanDefinitionException

Bean不唯一异常,常见于有多个重名的Bean,在创建时会抛出异常

解决方法:

  1. 在使用Bean时使用@Qualifier指定具体的Bean
  2. 在创建Bean时使用@Bean(name = )来为Bean取别名

十、BindingException

绑定异常,常见于将参数与Java对象绑定时,主要原因有

  1. 请求参数的名称与目标对象的属性名称不匹配
  2. 数据类型不匹配
  3. 缺少必需的请求参数
  4. 对象属性未设置 getter 和 setter 方法

解决方法:

  1. 在Controller层使用@RequestParam进行绑定
  2. 使用@RequestParam、@RequestBody、@PathVariable等合适的方法进行绑定
  3. 在使用@RequestParam等注解时,使用required = true来强制需求
  4. 使用lombok的@Data给对象赋予get和set方法
posted @   超级大菠萝面包  阅读(45)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示