Throwable java中所有异常的父类
派生两个子类,Error和Exception
try-catch
try{…}用于检测异常
jvm
- 1:当运行str.length()时发现string 是null
- 2:jvm实例化了一个NullPointerException的实例
- 3:将程序执行过程的详细信息设置到该异常实例中
- 4:将其在string.length()这个位置抛出该异常实例
- 5:查看出错的方法string.length()是否被try语句包含
- 6:如果没有被try语句包含,jvm会将该异常向string.length()所在的方法之外抛出若抛出到main方法之外,那么该程序终止
- 7:若被try语句包围,顺序调用try下面的catch查看哪个catch可以捕获该异常,若有则进入catch内部来执行处理代码的片段,否则和第6步相同
finally应该是发生在异常捕获的最后一步,写在最后一个catch之后
finally是无条件执行的,不管有没有出错,都会执行
finally可以写在try下面,不关注异常的解决,必须得执行finally。
throw
1:异常不应该在当前代码中处理
2:程序出现非语法错误,但是不满足业务逻辑
throws
就是丑话说前面
main方法不要写throws!
1:重写方法是可以不throws抛出任何异常
2:可以抛出父类部分异常
3:可以抛出父类抛出的异常的子类异常
FileNotFoundException是IOException的子类
1:不允许抛出额外异常
2:不允许抛出父类抛出异常的父类异常
自定义异常
网友评论