finally介绍
不管产不产生异常 都会执行
没有finally
try{
语句1; 出错的话 语句2就不执行了
语句2;
}catch(){
}
catch(){
}finally{
}
如果没报错 不执行 catch 直接跳到 finally
比如打开个文件 打开时 报错了 那没finally的话 直接开在那了 就没发进行第二语句
一个try段就是一个生产线 一个try块可能会产生一种或多种异常对象 后面的catch 对这些进行操作 没有异常 则所有catch块忽略
catch块中常用的 函数
getMessage();
getStackTrace();堆栈的内容
finally 为异常处理提供了一个统一的接口 使得在控制流程转到其它程序之前做一统一的控制管理,无论try快是否抛出异常,都鬼对其进行相应的处理
也可以进行相应的清洁工作 比如 关闭打开的文件 删除临时文件 try 里面产生一临时文件 占着空间 只能通过finally 处理 后续的try才能继续执行
手动写代码 检验你写代码的习惯
逮着异常 一定要进行处理 哪怕 打印处理啊 至少做出处理
一个函数处理不了 可以抛出来 给别人来处理 还是处理不了再继续抛 最终交到main 处理终极地方 不能再抛了
main 方法也可以 写方法 一种简单的方法就是 throws exception 那最后怎么处理呢 就交给java运行时系统了 java将会打出 相应的堆栈 信息打印出来 (编程风格不好!!)
写几种常见的exception 不要把错误 吞噬掉 同时也别乱跑
5个关键字 :try catch finally throw throws
逮异常时先逮小 再逮大的 !!!
自己能不能生成自己的异常类 可以 可以继承java。lang。exception啊啊 比如用户名不对 就单独
分着写异常比较好
重写方法需要与原方法抛出异常一致异常或不抛出异常
范围小了或大了 都不行
一个图 5个关键字 先逮小后逮大的 异常和重写的概念