一、IO异常的处理
实际开发中并不能一直把异常抛出这样处理,建议使用 try…catch…finally代码块,处理异常部分
1. 使用try…catch…finally代码块
package Day01.demo01;
import java.io.FileWriter;
import java.io.IOException;
/*
在jdk1.7之前我们可以使用try catch finally 处理流中的异常
格式:
try{
可能会产生异常的代码
}catch(异常类变量 变量名){
异常的处理逻辑
}finally{
一定会执行的代码
资源释放
}
*/
public class Demo01TryCatch {
public static void main(String[] args) {
//提高变量fw的作用域
//变量在定义的时候,可以没有值,但是使用的时候必须有值,fw没有值,fw.close()会报错
FileWriter fw = null;
try {
//可能会产生异常的代码
fw = new FileWriter("F:\\e.txt", true);
for (int i = 0; i < 10; i++) {
fw.write("Helloworld" + i + "\r\n");
}
} catch (IOException e) {
//异常的处理逻辑
System.out.println(e);
} finally {
//一定会执行的代码
//如果创建对象失败了,fw的默认值是null,null是不能调用方法的,会抛出空指针异常,需要增加一个判断,不是null再把资源释放
if (fw != null) {
try {
//fw.close()方法声明抛出了IOException异常对象,所以我们就要处理这个异常对象,要么throws,要么trycatch
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
运行结果:
2. JDK7和JDK9流中异常的处理
package Day01.demo01;
/*
JDK7的新特性