除了上一节提到的运行时异常和非运行时异常,还有很多常见的异常,比如:
算术异常:ArithmeticExecption
空指针异常:NullPointerException
类转换异常:ClassCastException
数组负下标异常:NegativeArrayException
数组下标越界异常:IndexOutOfBoundsException
违背安全原则异常:SecturityException
访问权限异常:IllegalAccessException
文件已结束异常:EOFException
文件未找到异常:FileNotFoundException
字符串转换为数字异常:NumberFormatException
操作数据库异常:SQLException
输入输出异常:IOException
方法未找到异常:NoSuchMethodException
……
这一节主要介绍以下五种异常:
1. NullPointerException(空指针异常)
空指针异常在编程时也经常遇到,该异常的出现意味着“程序遇上了空指针”,简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在调用数组的操作中,一般是刚开始学编程的人常犯的错误,即把数组的初始化和数组元素的初始化混淆了。
数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化,依然是空的,所以如果要调用的话,需要对每个元素都进行初始化。
2. ClassCastException(类转换异常)
数据类型转换错误,比如:
String temp="abc";
如果设为int temp就会报错,因为它们类型不一样,但是设为object temp就可以,因为object是它们的父类。
3. IndexOutOfBoundsException(数组下标越界异常)
我们在操作数组的时候经常会遇到这个异常,该异常的意思是“数组下标越界”,现在程序中大多都有对数组的操作,因此在调用数组的时候一定要认真检查,看自己调用的下标是不是超出了数组的范围。一般来说,直接用常数当下标调用不太容易出现这样的错误,但用变量当下标调用就容易出现这样的错误,还有一种情况,是程序中定义的数组的长度是通过某些特定方法决定的,不是事先声明的,这个时候,最好先查看一下数组的长度,以免出现这个异常。
4. IllegalAccessException(访问权限异常)
该异常的解释是“没有访问权限”,当应用程序要调用一个类,但当前的方法对该类没有访问权限便会出现该异常,在程序中使用package的情况下要注意这个异常。
5. IOException(输入输出异常)
一般读写文件会出现这个异常,比如你想从磁盘上读一个文件到你写的程序,如果硬盘上没有这文件,Java虚拟机就会报这个异常。
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程