1 package com.yhqtv.demo06.trycatch; 2 3 import java.io.FileWriter; 4 import java.io.IOException; 5 6 /* 7 * @author XMKJ yhqtv.com Email:yhqtv@qq.com 8 * @create 2020-05-13-9:38 9 * 10 */ 11 /* 12 在jdk1.7之前使用try catch finally 处理流中的异常 13 格式: 14 try{ 15 可能会产出异常的代码 16 }catch(异常类变量 变量名){ 17 异常的处理逻辑 18 }finally{ 19 一定会指定的代码 20 资源释放 21 } 22 */ 23 public class Demo01TryCatch { 24 public static void main(String[] args) { 25 //提高变量fw的作用域,让finally可以使用 26 //变量在定义的时候,可以没有值,但是使用的时候必须有值 27 //fw = new FileWriter("09_IOAndProperties\\g.txt",true); 执行失败,fw没有值,fw.close会报错 28 FileWriter fw = null; 29 try{ 30 //可能会产出异常的代码 31 fw = new FileWriter("w:\\09_IOAndProperties\\g.txt",true); 32 for (int i = 0; i <10 ; i++) { 33 fw.write("HelloWorld"+i+"\r\n"); 34 } 35 }catch(IOException e){ 36 //异常的处理逻辑 37 System.out.println(e); 38 }finally { 39 //一定会指定的代码 40 //创建对象失败了,fw的默认值就是null,null是不能调用方法的,会抛出NullPointerException,需要增加一个判断,不是null在把资源释放 41 if(fw!=null){ 42 try { 43 //fw.close方法声明抛出了IOException异常对象,所以我们就的处理这个异常对象,要么throws,要么try catch 44 fw.close(); 45 } catch (IOException e) { 46 e.printStackTrace(); 47 } 48 } 49 50 } 51 } 52 }