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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 温晓慧 中级黑马   /  2015-2-3 15:52  /  1198 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一般有读写文件,经常碰到这种情况,有个比较好奇的事情,大家一般都是try还是throw?
  1. BufferedReader bufr = null;
  2.                         System.out.println("请输入需要读取的文件路径");
  3.                         boolean flag =true;
  4.                         //读取键盘输入的路径
  5.                         Scanner scanner = new Scanner(System.in);
  6.                         String path = scanner.nextLine();
  7.                         while(flag)
  8.                         {
  9.                                 path=scanner.nextLine();
  10.                                 File file = new File(path);
  11.                                 if (!file.exists()||!file.isFile())
  12.                                 {
  13.                                         System.out.println("没有这个文件请重新输入");
  14.                                 }
  15.                                 else
  16.                                 {
  17.                                         try
  18.                                         {
  19.                                                 bufr = new BufferedReader(new FileReader(file));
  20.                                         } catch (FileNotFoundException e)
  21.                                         {
  22.                                                 // TODO Auto-generated catch block
  23.                                                 e.printStackTrace();
  24.                                         }
  25.                                         flag=false;
  26.                                 }
  27.                         }
复制代码

像前面已经进行了防止文件不存在的情况的处理了,编译的时候还是会有这个异常要处理,那么一般try还是抛呢?我try了,大家有没有比较好的写法,

评分

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

查看全部评分

3 个回复

倒序浏览
FileReader的构造函数定义时就抛出了FileNotFoundException异常,你只要调用了构造函数,就早晚是要try的,所以你前面的判断本就是多余的。。。
回复 使用道具 举报
天堂雨 发表于 2015-2-3 16:15
FileReader的构造函数定义时就抛出了FileNotFoundException异常,你只要调用了构造函数,就早晚是要try的, ...

那是不是这种情况,就try就行了,在catch里操作刚才的?因为视频里对于异常try和catch都讲的比较简单,进行处理的很少,所以不太清楚要处理应该怎么写~~~
回复 使用道具 举报
需要处理的异常就try(如需要打印一些错误信息进行提示就最好try),不需要任何处理的异常就throw。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马