文章目录
- 前言
- 一、编译时异常
- 常见的编译时异常
- 二、运行时异常
- 常见的运行时异常
- 总结
前言
在实际开发中,经常会在程序编译时产生一些异常,而这些异常必须要进行处理,这种异常被称为编译时异常,也称为checked异常。另外还有一种异常是在程序运行时产生的,这种异常即使不编写异常处理代码,依然可以通过编译,因此称为运行时异常,也称为unchecked异常。接下来就分别对这两种异常进行详细的讲解。
一、编译时异常
在Java中, Exception类中除了 RuntimeException类及其子类都是编译时异常。编译时异常的特点是Java编译器会对其进行检查,如果出现异常就必须对异常进行处理,否则程序无法通过编译。处理编译时期的异常有两种方式,具体如下:
- 使用try…catch语句对异常进行捕获。
- 使用throws关键字声明抛出异常,调用者对其处理。
常见的编译时异常
OException:输入输出流异常
FileNotFoundException:文件找不到的异常
ClassNotFoundException:类找不到的异常
DataFormatException:数据格式化异常
NoSuchFieldException:没有匹配的属性异常
NoSuchMethodException:没有匹配的方法异常
SQLException:数据库操作异常
TimeoutException:执行超时异常
…
二、运行时异常
RuntimeException类及其子类都是运行时异常。运行时异常的特点是Java编译器不会对其进行检查,也就是说,当程序中出现这类异常时,即使没有使用try…catch语句捕获或使用throws关键字声明抛出,程序也能编译通过。运行时异常一般是由程序中的逻辑错误引起的,在程序运行时无法恢复。比如通过数组的角标访问数组的元素时,如果超过了数组的最大角标,就会发生运行时异常,代码如下所示:
int [] arr=new int[5];
System.out.println(arr[6]);
上面代码中,由于数组arr的 length为5,最大角标应为4,当使用arr[6]访问数组中的元素就会发生数组角标越界的异常。
常见的运行时异常
RuntimeException:运行时异常
NullPointerException:空指针异常
ArrayIndexOutofBoundsException:数组越界异
ClassCastException:类型转换异常
IllegalArgumentException:非法的参数异常
InputMismatchException:输入不匹配
…
总结
以上这些就是常见的异常,但是作为Java人员,这些异常现象一定要熟悉,不仅如此还要学会解决异常,这样才是作为一个Java人员应该具备的技能哦。