zoukankan      html  css  js  c++  java
  • 48.java异常处理之finally

     finally

           1: 实现方式一:

        try{ // 可能发生异常的代码 } catch( 异常类的类型 e ){ // 当发生指定异常的时候的处理代码 }catch...            比较适合用于专门的处理异常的代码,不适合释放资源的代码。

          2:实现方式二:

              try{  } catch(){} finally{ // 释放资源的代码 }

              finally块是程序在正常情况下或异常情况下都会运行的。

              比较适合用于既要处理异常又有资源释放的代码

          3:实现方式三

              try{  }finally{ // 释放资源 }

              比较适合处理的都是运行时异常且有资源释放的代码。

           4:finally:关键字主要用于释放系统资源。

                  1:在处理异常的时候该语句块只能有一个。

                  2:无论程序正常还是异常,都执行finally。

          5:finally是否永远都执行?

              1:只有一种情况,但是如果JVM退出了System.exit(0),finally就不执行。

              2:return都不能停止finally的执行过程。

          6:案例使用流

              1:使用FileInputStream加载文件。

                 导包import java.io.FileInputStream;

              2:FileNotFoundException 

                 导入包import java.io.FileNotFoundException;

              3:IOException

                 import java.io.IOException;

    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{}
    author@nohert
  • 相关阅读:
    MySQL 卸载
    Mysql(压缩包)下载与安装
    sqlserver一次性修改多条
    mysql一些操作
    SQL函数集合
    js时间转换相关
    easyui grid中翻页多选方法
    easyui combobox筛选(拼音)
    wpf图片切换,幻灯效果
    openfire搭建IM
  • 原文地址:https://www.cnblogs.com/gzgBlog/p/13588954.html
Copyright © 2011-2022 走看看