异常体系
体系
Error:代表系统级别错误(属于严重错误)系统一旦出现问题,Sun公司会把这些错误分装成Error对象。Error是给Sun公司自己用的,不是给我们程序员用的。因此我们开发人员不用管它。Exception:叫做异常,代表程序可能出现的问题。我们通常会用Exception以及他们的子类来封装程序出现的问题。RuntimeException:运行时异常,RuntimeException及其子类,编译阶段不会出现异常提醒。运行时出现的异常(如:数组越界异常)- 编译时异常:编译阶段就会出现异常提醒的。(如:日期解析异常)
总结
1.异常是什么?
- 程序可能出现的问题
2.异常体系的最上层父类是谁?异常分为几类?
- 父类:Exception
- 异常分为两类:编译时异常和运行时异常
编译时异常和运行时异常的区别?
- 编译时异常:除了RuntimeException和他的子类,其他都是编译时异常。直接继承于Exception。编译阶段需要进行处理,作用在于提醒程序员。
- 运行时异常:RuntimeException本身和所有子类,都是运行时异常,编译阶段不报错,是程序运行时出现的。一般都是由于参数传递错误带来的问题。
异常的作用
- 作用一:异常是用来查询bug的关键参考信息
- 作用二:异常可以作为方法内部的一种特殊返回值,以便通知调用者底层的执行情况。
异常处理的方式
JVM默认的处理方式
目的:把异常信息以红色字体打印在控制台,并结束程序。
自己处理(捕获异常)
目的:当代码出现异常时,可以让程序继续执行下去
格式:
try {
可能出现异常的代码;
} catch (异常类名 变量名) {
异常的代码处理;
}
抛出异常(throws throw)
目的:在方法中出现了异常,方法就没有继续执行下去的意义了,采取抛出处理。让该方法结束运行并告诉调用者出现了哪些问题。
| 名称 | 注意点 | 格式 | |
|---|---|---|---|
| throws | 写在方法定义处,表明声明一个异常。告诉调用者,使用本方法可能会出现哪些异常 | public void 方法() throws 异常类型名1,异常类名2...{} | 编译时异常,必须要写。运行时异常,可以不写 |
| throw | 写在方法内,结束方法。手动抛出异常对象,交给调用者。方法中下面的代码不再执行 | public void 方法() { throw new NullPointerException } |