JAVA单排日记-2020/1/27-try...catch处理流中的异常

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

public class Demo02 {
    public static void main(String[] args) throws IOException {
        FileWriter fileWriter = new FileWriter("G:\\Java\\测试文件夹2\\c.txt");
        fileWriter.write("你好,再见!"+"\r\n"+"asdfgh");
        fileWriter.flush();

        fileWriter.write("123asd123",3,3);
        fileWriter.flush();
        fileWriter.close();
    }
}

实际开发中不能直接使用throws抛出异常,可以使用try...catch...处理异常

JDK7之前,普通处理

import java.io.FileWriter;
import java.io.IOException;
import java.util.Formatter;

public class Demo02 {
    public static void main(String[] args) {
        FileWriter fileWriter = null;//提高变量fileWriter的作用域,让finally可以使用
        try {
            fileWriter = new FileWriter("G:\\Java\\测试文件夹2\\c.txt");//可能产生异常的代码使用try...catch处理
            fileWriter.write("你好,再见!" + "\r\n" + "asdfgh");
            fileWriter.flush();

            fileWriter.write("123asd123", 3, 3);
            fileWriter.flush();
        } catch (IOException e) {
            e.toString();
        } finally {
            try {
                fileWriter.close();//close()方法本身有异常,所以也用try...catch...处理
            } catch (IOException e) {
                e.toString();
            }
        }
    }
}

JDK7新特性,处理流异常的格式:

try(定义流对象){
	可能会产生异常的程序;
}catch(异常变量 变量名){
	异常处理逻辑;
}//自动释放内存
import java.io.FileWriter;
import java.io.IOException;

public class Demo02 {
    public static void main(String[] args){

        try (FileWriter fileWriter = new FileWriter("G:\\Java\\测试文件夹2\\c.txt");) {
            fileWriter.write("你好,再见!" + "\r\n" + "asdfgh");
            fileWriter.flush();

            fileWriter.write("123asd123", 3, 3);
            fileWriter.flush();
        } catch (IOException e) {
            e.toString();
        }
    }
}

JDK9新特性,处理流异常的格式:

定义流对象;
try(对象名){
	可能会产生异常的程序;
}catch(异常变量 变量名){
	异常处理逻辑;
}//自动释放内存
import java.io.FileWriter;
import java.io.IOException;

public class Demo02 {
    public static void main(String[] args){
        FileWriter fileWriter = new FileWriter("G:\\Java\\测试文件夹2\\c.txt");
        try (fileWriter) {
            fileWriter.write("你好,再见!" + "\r\n" + "asdfgh");
            fileWriter.flush();

            fileWriter.write("123asd123", 3, 3);
            fileWriter.flush();
        } catch (IOException e) {
            e.toString();
        }
    }
}

发布了103 篇原创文章 · 获赞 1 · 访问量 2647

猜你喜欢

转载自blog.csdn.net/wangzilong1995/article/details/104091188