从这张结构图可以知道,throwable是所有异常的父类,我们今天仅在exception中进行分享,因为相对来说,这里的种类更加常见。
这个就是非常基础了,比如你用0做除数,就会出现这种情况,因此在Java中操作数学公式时候,一定要检查好每个因子。
空指针异常 null pointer exception这个其实算是工作中最常见的问题,前几天我就在部署springboot项目的时候,发现用autowised注解标注的一个数据库操作句柄是空的,在用这个句柄去进行select查询的时候就爆了错。这个通常是由于对象名指向了null,然后又要操作这个对象/属性的时候会出现的,因此,在操作一个对象之前,最好先检查 if(Object == null),确认不是null之后再操作,免得出现这种错误。
类型强制转换异常 number format exception这个也很常见啦,比如强制用 Integer.valueOf("abc"),就会出现这种错误,就是说“abc”字符串,无论如何都无法转成integer型的对象(整数)。这种就是不能强行变换。
数组下标越界异常 array index out of exception依旧常见,比如String[] array = "abc".spilt(","); 在这个操作之后,要获取array[2],本身array的length就只有1,所以要拿到array的第三个元素,当然就是越界了呀,因此,这种时候也要加上if(array.length() > 3)的检查,才能去获取array[2]。
数据库操作异常SQLexception上面举例,我前几天操作springboot项目的时候,好不容易把数据库句柄为空的问题解决了,结果执行的时候,又报了这个错误。经过我各种排查,最后发现是idea这个IDE里,需要把数据库的xml文件放在resource文件夹下面才行(eclipse这方面就比较好,只需要在
application.yml
文件里指定xml文件地址就可以),否则就算拿到了数据库操作指针,也不知道到哪里找到对应的xml文件去执行正确的sql语句。 数据输出异常 IOException这种问题通常出现在读写文件的时候,比如没有正确的使用bufferReader,bufferwriter等等。
方法未找到异常 no such method exception这种通常是编译之后出现的问题,比如你明明在Class A里定义了A1方法,但是执行的时候,却说没有找到A1方法。这种时候,除了检查代码,不妨重新编译试试,