A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


javaSE常见异常原因以及解决方法

第一章:简介

        在我们java开发者编写代码的过程中,经常会出现一些异常。那么对于运行时异常我们在代码中可以通过抓取(try catch)或者抛出(throws)的方式让代码编译通过。那么,在代码运行的时候,出现异常的时候该怎么解决呢?本文介绍了一些java中常见的异常的原因和解决的方法,最后分享了本人在开发中遇到异常时的一些解决技巧。今天给大家介绍一下javaSE中异常的原因以及解决方法。

第二章:常见异常原因以及解决方法

1、java.lang.NullPointerException(空指针异常)

原因:故名思议,该异常是因为当我们调用java中某个对象的方法时,对象是个null。

解决方法:找到异常出错的那一行代码,查询代码中的对象是否为null。

例如:下图中异常报错在第7行,很明显第7行的dog对象是空的。



2、 java.lang.ClassNotFoundException

原因:指定的类不存在,一般在加载某些类的时候,如果指定位置的类不存在,会出现该异常。

解决方法:检查指定的路径的类是否存在。不存在的话查看是否缺少第三方包还是自己配置的路径是否有误。

例如:指定路径 com.itheima.test.Do这个类不存在,那么我们就去对应的位置找这个类是否存在在



包结构以及类如下:很明显,路径写错了。




3、java.lang.IndexOutOfBoundsException

原因:数组下标越界异常。java中的数组的长度是固定的。我们获取数组中的值有时候是通过下标获取          的。当我们获取值时,下标的长度超出了数据的长度,那么就会出现该异常。

解决方法:检查下标长度是否超过了数组的长度。        

例如:数组长度是10,而我们获取的数组下标为10,也就是操作数组中第11个值,很明显超出了数组的长度



4、java.lang.ClassCastException

原因:类型转换异常。当我们将java中的类型进行强制转换的时候,但是又不能进行强转,将出现该异常。

解决方法:检查转换的2种类型是否可以强转,另外,做强转时最好满足java中的多态。多态的解释:接口类型接收实现类类型,父类接收子类类型。

例如:在第7行代码中出现异常,原因是整形不能强转成String类型。所以我们这边不能强转,可以尝试其他方式。比如:加上一个空串。



5、 java.lang.FileNotFoundException

原因:找不到指定的文件。一般我们操作io流获取文件的时候,如果指定路径下没有对应的文件,会出现该异常。

解决方法:去指定路径下查看文件是否存在,如果不存在,那么检查java代码中文件的路径是否有问题。



6、java.lang.NoSuchMethodException

原因:找不到方法。一般情况下,当我们使用java中的反射机制获取类中的方法的时候,如果该方法不存在,那么会出现该异常。

解决方法:到指定的类中查看是否存在该方法。如果确实不存在,看看反射机制中,方法名和方法的参数是否正确。

例如:Dog类的路径和方法如下图:



如下:Dog类中有sleep方法,但是没有sleep方法的参数是Integer类型的,所以报错。





7 个回复

倒序浏览
回复 使用道具 举报
厉害厉害
回复 使用道具 举报
奈斯
回复 使用道具 举报
奈斯
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
优秀,奈斯
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马