栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

110-使用try-catch-finally处理流中的异常-*JDK7和JDK9流中异常的处理

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

110-使用try-catch-finally处理流中的异常-*JDK7和JDK9流中异常的处理

1.使用try-catch-finally处理流中的异常
在jdk1.7之前 try catch finally处理流中的异常
 格式:try{
可能会产生异常的代码
 }catch(异常类的变量 变量名){
异常的处理逻辑
}finally{
一定会执行的代码
资源的释放
package demo05;

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


public class Demo05TryCatch {
    public static void main(String[] args) {
        FileWriter fw = null;
        //提高变量fw的作用域,让finally可以使用
        //变量定义时看有没有值但是使用时一定要有值
        // FileWriter fw = new FileWriter("D:\IdeaProjects\新建文件夹\k.txt", true);若执行失败 fw就没有值 fw.close();就执行失败
        try {
            fw = new FileWriter("D:\IdeaProjects\新建文件夹\k.txt", true);
            for (int i = 0; i < 10; i++) {
                fw.write("HelloWorld" + i + "rn");
            }
            //fw.close();//如果关闭前面的代码出现了问题就不会资源释放所以放在finally中
        } catch (IOException e) {
            System.out.println(e);  //处理逻辑:打印异常
        } finally {//一定会执行的代码
            //如果创建对象失败了(好比找不到文件路径),fw的默认值是null,而null是不能调用方法的会抛出空指针异常NollPointerException
            //需要增加一个判断,不是null再释放资源
            if (fw != null) {
                try {
                    fw.close(); // 直接fw.close();报错 因为超出了变量的作用域   close有异常所以try catch一次
                } catch (IOException e) {
                    e.printStackTrace();
                }//fw.close();方法声明抛出了IOException异常对象,所以要处理这个异常要么throws,要么try...catch

            }
        }
    }
}

以上注意几点:

1.FileWriter fw = null 定义在外面是因为变量的作用域问题;

2.finally中加了一个判断fw!=null是为了创建对象失败时抛出空指针异常

2.JDK7和JDK9流中异常的处理

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/351437.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号