finally关键字
2016-04-14 00:00
337 查看
昨天学习了新的关键字——finally,了解了该关键字有如下几个特点:
1、finally的作用是,释放资源;
2、在finally存在的情况下,代码运行后即会被释放,在代码运行中哪怕遇到return也会执行finally;
3、只要在遇到System.exit();语句时,finally才不会被执行;
4、无论程序是正常还是异常,都会执行finally;
5、在处理异常的时候,该语句块只能存在一个。
finally的三种实用场景:
1: 实现方式一:
try{ // 可能发生异常的代码 } catch( 异常类的类型 e ){ // 当发生指定异常的时候的处理代码 }catch...
比较适合用于专门的处理异常的代码,不适合释放资源的代码。
2:实现方式二:
try{ } catch(){} finally{ // 释放资源的代码 }
finally块是程序在正常情况下或异常情况下都会运行的。
比较适合用于既要处理异常又有资源释放的代码
3:实现方式三
try{ }finally{ // 释放资源 }
比较适合处理的都是运行时异常且有资源释放的代码。
1、finally的作用是,释放资源;
2、在finally存在的情况下,代码运行后即会被释放,在代码运行中哪怕遇到return也会执行finally;
3、只要在遇到System.exit();语句时,finally才不会被执行;
4、无论程序是正常还是异常,都会执行finally;
5、在处理异常的时候,该语句块只能存在一个。
finally的三种实用场景:
1: 实现方式一:
try{ // 可能发生异常的代码 } catch( 异常类的类型 e ){ // 当发生指定异常的时候的处理代码 }catch...
比较适合用于专门的处理异常的代码,不适合释放资源的代码。
2:实现方式二:
try{ } catch(){} finally{ // 释放资源的代码 }
finally块是程序在正常情况下或异常情况下都会运行的。
比较适合用于既要处理异常又有资源释放的代码
3:实现方式三
try{ }finally{ // 释放资源 }
比较适合处理的都是运行时异常且有资源释放的代码。
实操: public class FinallyDemo { // 本例子使用finally 关闭系统资源。 public static void main(String[] args) { FileInputStream fin = null; try { System.out.println("1创建io流可能出现异常"); fin = new FileInputStream("aabc.txt"); // 加载硬盘的文本文件到内存,通过流 // System.out.println(fin); } catch (FileNotFoundException e) { System.out.println("2没有找到abc.txt 文件"); System.out.println("3catch 了"); // System.exit(0); // return; } // finally finally { System.out.println("4fianlly执行"); if (fin != null) { // 如果流对象为null 流对象就不存在,没有必要关闭资源 try { fin.close(); } catch (IOException e) { e.printStackTrace(); System.out.println("close 异常"); } } System.out.println("5finally over"); } System.out.println("6mainover"); } } // 2:无论程序正常还是异常,都执行finally。 但是遇到System.exit(0); jvm退出。 // finally用于必须执行的代码, try{} catch(){}finally{} // try{}finally{}
相关文章推荐
- Ubuntu UFW 防火墙设置
- 企业为什么要做专属的移动APP?
- 远丰集团:企业布局移动电商该怎么选APP
- 远丰集团:商城系统为企业打造移动电商生态圈
- 对象池common-pool2源码分析之对象状态
- Core Motion框架使用方法
- think in java_String
- 视频流媒体服务畅想
- 事件和消息机制的的理解
- metaq发送和接收消息demo
- 灵活强大的构建系统Gradle
- ajaxfileupload上传文件
- jsp页面js ajax请求,解决IE缓存问题,加时间戳
- Packet for query is too large (2353015 > 1048576).
- mysql 连接字符串与SQL不同
- java GMT时间转换
- substring session
- mathtype-公式编辑器
- 项目板块划分及数据库框架
- 出游了,双飞海南