异常:java程序编译或运行过程中出现的问题
Throwable:
Error: 表示非常严重的问题,自己无法解决的问题
Exception:
除了RuntimeException其它异常【编译时期异常】: 一般指的是异常尚未处理就编译了
RuntimeException【运行时期异常】: 运行过程中报错了,一般情况下是因为语法逻辑不正确导致
JVM遇到问题时,默认的处理方案是:停止程序,抛出错误。
## 异常的处理方案一 :
1、try...catch...finally
为了保证规范性尽量用try ... catch ..finally catch捕获异常返回
2.无论try中的代码是否出错,finally都会执行。
finally一般来说,用作释放资源的作用。
try...catch使用注意事项:
1、当try中出现异常时,JVM会对应创建一个异常类对象
2、自上而下会与catch中的异常进行匹配,若匹配上就相当于处理了,执行catch中的逻辑
3、若try中有多个异常,当第一个异常触发时,try中的其它后续代码都不会执行,JVM会对应创建一个异常类对象进行第二步匹配
4、可以直接写一个catch里面是所有异常的父类、 catch (Exception e)
5、若存在多个catch匹配,需要将父类异常往后写
6、若使用jdk新特性的写法的话,异常类之间不能存在继承系
点击查看代码
try {
System.out.println(arr[8]);// newArrayIndexOutOfBoundsException()
System.out.println(3/0);
} catch (Exception e) {
//void printStackTrace()
//将此throwable和其追溯打印到标准错误流。
e.printStackTrace();
}finally{
System.out.println("who are you");
}
System.out.println("i am wangjun");
## 异常的处理方案二 : 抛出异常
throws: 抛出
在方法的定义上抛出异常类, throws本身是不会处理异常的,只是当时方法内部不用处理了,
但是当调用者调用有问题的方法时,需要调用者进行处理
throw: 抛出
在方法内部抛出异常对象,表示一个确定的异常
注意:
当调用者调用抛出运行时期异常的方法时,可以选择不去处理,也能运行。
当调用者调用抛出编译时期异常的方法是,必须要进行处理,否则编译不通过无法运行。
小故事理解 throw throws try...catch 的使用:
江川是一个快乐的小矿工,有一天他挖到了一个远古炸弹
标签:try,...,抛出,问题,catch,finally,解决,异常
From: https://www.cnblogs.com/wangxiaojian-lina/p/18474939