什么是异常,java代码在运行时期发生的问题就是异常
java把异常信息都封装成了一个类,当问题出现时,就会创建异常类的对象,并抛出相关的错误信息
Throwable 是所有异常类的父类(超类)
Error(错误),Exception(异常)都是 Throwable 的子类
* Exception 异常, 感冒, 阑尾炎
* 将异常处理掉, 可以继续执行
* Error 错误, 非典, 艾滋, 癌症
* 必须修改程序
当main方法接收到异常时,会有两种处理方式
JVM:
new ArrayIndexOutOfBoundsException(3)
注意:一旦异常被抛出了,后面的所有程序,就不再执行了,一直向上抛,直到抛到JVM中,JVM收到异常后,做了两件事请:1. 将异常信息,以红色字体输出到控制台,2. 将程序停止,结束
如果有try catch
就不是将异常向上抛了,而是抛给catch
了
如果可能抛出多个不同的异常,可以使用多catch来捕获,类似链式代码
例:
try {
// ...
} catch (NullPointerException e) {
// ....
} catch (ArrayIndexOutOfBoundsException e) {
// ...
}
// 这里抛出什么异常就会进入到对应的异常的catch中,也就是被对应的异常捕获到