异常:就是错误
JVM对异常的处理方式有:
致命问题:Error
异常:Exception
异常处理格式
try{
有可能出现问题的代码;
}catch(异常对象){
异常处理
}
执行流程:
如果没有问题,就执行到底
如果try中代码出现了问题,就执行异常处理后的代码,注意,是直接将处理后的代码插入那个出现问题的地方的代码处
抛出异常:将有可能出现的异常抛出交给JVM处理,这里不是暴力处理异常,所以程序继续执行
多个异常的话使用多个catch进行处理
1.多个catch之间有子父级关系(即异常对象之间有子父级关系)
2.平级之间没有子父级关系
3.如果有子父级关系,那么父级点的异常在后面
4.前面的异常执行了,后面的异常不会执行
异常接口的常用方法
String getMessage();获取异常原因
String toString();获取异常类型以及原因
void printStackTrace();获取异常的位置,类型以及原因
throw的代码如果执行了,则不执行之后的代码
1.抛出异常并不是解决问题,而是让别人知道这里是错的
2.throw和throws都是消极的处理异常的方式,不是说不好,而是,这两个只是抛出或者可能抛出异常,但是并不会由函数去处理异常,真正处理异常的是由上层调用处理
3.良好的方式是用try{}catch(){}去 处理,catch后面的{}里不管怎么样都要写点东西,哪怕是一句输出,一个printStackTrace()
4.如果是捕捉io流的异常,一定要在catch(){}后添加一个finally{}把流关闭。换句话说,如果有需要关闭流的情况下,后面都要加finally
5.如果try内出现了异常,那么异常之后的语句都不执行,直接执行catch内的东西