java异常
异常
异常的作用
异常的处理方式
常见方法
抛出处理
自定义异常
异常
异常:异常就是代表程序出现的问题
Error:代表的系统级别错误(属于严重问题)系统一旦出现问题,sun公司会把这些错误封装成Error对象:Error是给sun公司自己用的,不是给我们程序员用的。因此我们开发人员不用管它
Exception:叫做异常,代表程序可能出现的问题我们通常会用Exception以及他的子类来封装程序出现的问题
运行时异常:RuntimeException及其子类,编译阶段不会出现异常提醒,运行时出现的异常(如:数组索引越界异常)
编译时异常:编译阶段就会出现异常提醒的。(如:日期解析异常)
异常的作用
作用一:异常是用来查询bug的关键参考信息
作用二:异常可以作为方法内部的一 种特殊返回值,以便通知调用者底层的执行情况
异常的处理方式
1.JVM默认的处理方式
- 把异常的名称,异常原因及异常出现的位置等信息输出在了控制台
- 程序停止执行下面的代码不会再执行了
2.自己处理(捕获异常)
格式:
目的:当代码出现异常时,可以让程序继续往下执行。
1.如果try中没有遇到问题,怎么执行?
------会把try里面所有的代码全部执行完毕,不会执行catch里面的代码(注意:
只有当出现了异常才会执行catch里面的代码)
2.如果try中可能会遇到多个问题,怎么执行?
会写多个catch与之对应
细节:如果我们要捕获多个异常,这些异常中如果存在父子关系的话,那么父类一定要写在下面
3.如果try中遇到的问题没有被捕获,怎么执行?
相当于try…catch的代码白写了,最终还是会交给虚拟机进行处理。
4.如果try中遇到了问题,那么try下面的其他代码还会执行吗?
下面的代码就不会执行了,直接跳转到对应的catch当中,执行catch里面的语句体
但是如果没有对应catch与之匹配,那么还是会交给虚拟机进行处理
常见方法
Throwable 的成员方法
printstackTrace()//细节:仅仅是打印信息,不会停止程序运行
抛出异常
throws
注意:写在方法定义处,表示声明一个异常告诉调用者,使用本方法可能会有哪些异常
public void 方法() throws 异常类名,异常类名2…{
…
}
编译时异常:必须要写。
运行时异常:可以不写。
throw
注意:写在方法内结束方法手动抛出异常对象,交给调用者方法中下面的代码不再执行了
public void 方法(){
throw new NullPointerException();
}
抛出和捕获
抛出:告诉调用者出错了
告诉调用者方法里面有问题了,更多写在方法里
捕获:不让程序停止
更多写在方法处
自定义异常
意义:就是为了让控制台的报错信息更加的见名之意
- 定义异常类
- 写继承关系
- 空参构造
- 带参构造