异常和错误
程序中难免会遇到一些异常,导致其无法正常的运行。有一些异常是可以预测并处理的,这就要求开发人员在开发的过程中提前做好处理方式的定义。
在Java类中有这样的层次,
- Throwable类
- Error,错误类
- Exception,异常类(为避免歧义,下面的异常均指该类),包括
- RuntimeException类
- IOException类
关于错误和异常,错误一般发生在严重故障时,程序一般不处理,例如内存溢出。而异常可以分为:
- 检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略;
- 运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略,例如数组越界。
- 自定义异常
常见的一些异常
- ArithmeticException:当出现异常的运算条件时,抛出此异常。例如,一个整数"除以零"时,抛出此类的一个实例;
- ArrayIndexOutOfBoundsException:用非法索引访问数组时抛出的异常。如果索引为负或大于等于数组大小,则该索引为非法索引;
- NullPointerException:当应用程序试图在需要对象的地方使用 null 时,抛出该异常
- ClassNotFoundException:应用程序试图加载类时,找不到相应的类,抛出该异常;
- IllegalAccessException:拒绝访问一个类的时候,抛出该异常。