Java常见异常总结(持续更新中......)

1.类未找到

Exception in thread "main" java.lang.NoClassDefFoundError:类名

Caused by: java.lang.ClassNotFoundException:类名

这种异常未未发现类异常,是由于编译的时候未找到该类而报异常,一般原因是由于缺少项目所需jar包导致。一般来说,项目A调用了项目B所打成的jar包中的类的话,那么项目B所需要的jar包也应该同时导入项目A中。

处理方法:一层层找项目所需jar包及底层项目所需jar包,从中找到所需要的类。

补充:运行Spark时出现,项目与所需class文件不在同一包内,导致类未找到,虽然能导入,也能编译,但无法运行。

2.方法未找到

Exception in thread "main" java.lang.NoSuchMethodError: 类名.方法名

这种异常是由于编译的时候未找到该方法而报异常,一般原因是因为方法不存在或者是方法参数列表有误(包括某些参数可能为空等情况)。

处理方法:首先判断类是否找到,然后到该方法所在的类中,添加或者修改方法。

补充:NoSuchMethodError之后若紧接着出现(形参列表)+ Ljava/lang/String或者Ljava/lang/list,就说明数组出现了问题,数组类型不匹配。

3.内存溢出

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

Java虚拟机内存溢出

处理方法:可参考运行Spark常见问题处理方法(持续更新中......)其中第二点所描述方法。

4.算术运算错误

Exception in thread "main" java.lang.java.lang.ArithmeticException

算术运算出现错误,比如分母为零等

处理方法:根据Exception之后陆续报出的异常出现位置进行修改即可。

5.数组越界

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException

这种异常出现的原因是由于根据数组元素下标访问数组超出了数组原有长度,原因有二:1,数组长度过短,一般为空;2,访问数组元素下标值过大或者过小,遍历等操作设置参数有误。

处理方法:首先判断数组长度,而后判断访问下标值大小,一般可用数组.length来进行遍历等操作。

6.空指针

Exception in thread "main" java.lang.NullPointerException

这种异常出现的原因是对象为空,而后调用这个对象所在类的其他方法时报此异常。

处理方法:找出实例化时对象为空的具体原因,具体问题具体分析。

7.String转其他类型

Exception in thread "main" java.lang.NumberFormatException

由于在将String类转换为其他类如int等时出现异常,一般后续会输出日志说明异常所在位置,及转换出错类型。

处理方法:强行转换容易出现这种问题,搞清楚数具体数值及类型是关键。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值