/* 在JDK7之前的IO流中的异常处理 一定要保证释放资源的代码无论如何都会执行到。 我们可以把这部分代码放入到finally代码块中 */ public class Demo01Exception { public static void main(String[] args) { FileWriter fw = null; try { fw = new FileWriter("fiel07.txt"); } catch (IOException e) { e.printStackTrace(); } finally { //释放资源 //如果fw输出流创建对象的时候出问题了,或者创建对象之前出问题了 // 。那么这个流是不需要关。 //如果创建之前出问题了,fw的值是null if (fw != null) { try { fw.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
/* 在jdk7之后,多了新的异常处理方式。 是另外一种try语句 try(创建流对象) { 使用这个流对象 } catch(异常) { //捕获处理方式 } 不管程序的执行结果如何,都会调用在try中创建的流对象的close方法。 注意:这个close方法,不需要我们手动去调用,系统会帮我们去调用 try后面的小括号中也可以创建多个对象,多个对象之间使用分号隔开 */ public class Demo02Exception { public static void main(String[] args) { try (FileWriter fw = new FileWriter("fiel08.txt")) { fw.write("你好"); } catch (IOException e) { e.printStackTrace(); } } }