A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张俊飞 中级黑马   /  2013-12-19 19:01  /  889 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

下面是我学习IO时写的一个异常处理程序,分享一下

public class FileWriterTest {

public static void main(String[] args) {
  //建立FileWriter对象,函数外建立,函数内初始化
  FileWriter fw = null;
  //异常处理
  try
  {
   fw = new FileWriter("test.txt");
   fw.write("黑马程序员");
  }
  catch(IOException e)
  {
   //输出异常
   System.out.println(e.toString());
  }
  finally
  {
   try
   {
    //关闭流
   fw.close();
   }
   catch(IOException e)
   {
    System.out.println(e.toString());
   }
  }
}
}

评分

参与人数 1黑马币 +10 收起 理由
乔兵 + 10

查看全部评分

1 个回复

倒序浏览
个人提点建议:
1.java异常的输出也可以使用
catch (IOException e) {
       e.printStackTrace();
}
printStackTrace()方法的意思是:在命令行打印异常信息在程序中出错的位置及原因.
2.对于try...catch...finally语句块
finally是总会执行的,即使try里捕捉了异常也会执行finally里的语句,所以在finally里关闭流
应该进行一次判断,减少异常的发生。写入文件时 new FileWriter("test.txt")没有该目标文件会自己创建一个,但是对于读取文件时new FileReader("test.txt")如果找不到目标文件,系统会抛出FileNotFoundException,此时FileWriter对象为空,执行finally里的关闭流失会发生空指针异常应该避免,所以finally里最好进行非空验证。
try {
        if(fw!=null){
                fw.close();
        }
} catch (IOException e) {
    e.printStackTrace();
}

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马