Java基础15
异常
-
异常:代码在编译或者执行过程中可能出现的错误。
int[] arr = {10,20,30}; System.out.println(arr[3]); // 数组越界异常 System.out.println(10 / 0); // ArithmeticException // 读取的文件不存在了,IO异常 // 读取网络资源,断网了
-
Java的异常体系:
- Error:代表的系统级别错误(属于严重问题),也就是说系统一旦出现问题,Sun公司会把这些问题封装成Error对象给出来。
- Exception:异常,它代表的才是我们程序可能出现的问题,所以,我们程序员通常会用Exception以及它的孩子来封装程序出现的问题。
- 运行时异常:RuntimeException及其子类,编译阶段不会出现错误提醒,运行时出现的异常。(如:数组越界异常)
- 编译时异常:没有继承RuntimeException的异常及其子类。编译阶段就会出现错误提醒。(如:日期解析异常)
-
异常的处理方式:
-
捕获异常:try…catch,try…catch…finally
try { // 监视可能出现的异常代码! }catch(异常类型1 变量){ // 处理异常 }catch(异常类型2 变量){ // 处理异常 }... finally { // 处理善后工作 }
-
抛出异常:throw,throws
方法 throws 异常1,异常2,异常3 …{}
-
-
异常的作用:
- 异常可以用来定位程序bug的关键信息。
- 可以作为方法内部的一种特殊返回值,以便通知上层调用者,方法的执行问题。
-
自定义异常:
- 自定义编译时异常,继承Exception。
- 自定义运行时异常,继承RuntimeException。