使用try_catch_finally处理流中的异常

package com.chunzhi.Test06TryCatch;

import java.io.FileWriter;
import java.io.IOException;

/*
    在jdk 1.7之前使用try catch finally处理流中的异常
    格式:
        try {
            可能会产生异常的代码
        } catch (异常类变量 变量名) {
            异常的处理逻辑
        } finally {
            一定会执行的代码
            资源释放
        }
 */
public class Test01TryCatch {
    public static void main(String[] args) {
        // 提高变量fw的作用域,让finally可以使用
        // 变量在定义的时候,可以没有值,但是使用的时候必须有值
        FileWriter fw = null;
        try {
            // 可能会产生异常的代码
            fw = new FileWriter("z:\\Day09IOAndProperties\\a.txt");
            for (int i = 0; i < 10; i++) {
                fw.write("Hello World Java" + i + "\r\n");
            }
        } catch (IOException e) {
            // 异常的处理逻辑
            System.out.println(e);
        } finally {
            // 一定会执行的代码
            // 创建对象失败后,fw的默认值是null,null是不能调用方法的,会抛出NullPointerException,需要增加一个判断,不是null再把资源释放
            if (fw != null) {
                try {
                    // fw.close方法声明抛出了IOException异常对象,所以我们就得处理这个异常对象,要么throws,要么try catch
                    fw.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

 

posted @ 2020-11-22 21:45  春志  阅读(288)  评论(0)    收藏  举报