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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

import java.io.*;
class FileReaderTest
{
        public static void main(String[] args)
        {
                //System.out.println("Hello World!");
                FileReader fr = null;
                try
                {
                        fr = new FileReader("DateDemo.java");
                        char[] buf = new char[1024];
                        int num = 0;
                        while ((num = fr.read(buf))!= -1)                      {
                                System.out.println(new String(buf,0,num));
                        }
                }
                catch (FileNotFoundException e)
                {
                        System.out.println(e.toString());
                }
                finally
                {
                        try
                        {
                                if(fr != null)
                                fr.close();
                        }
                        catch (FileNotFoundException e)
                        {
                                System.out.println(e.toString());
                        }
                }
        }
}错误: 未报告的异常错误IOException; 必须对其进行捕获或声明以便抛出,不是已经try和catch了吗?怎么还提示错误呢?
还应该在哪里生命呢??

5 个回复

倒序浏览
看提示做呀,说的是要么抛IO异常要么try,你处理的时候,用的异常是FileNotFoundException文件找不到异常,那是你读取文件可能存在的隐患,凡是跟流打交道的数据,你尽量抛大的异常,这里抛IO异常,或者catch的时候用IOException:)
回复 使用道具 举报
⋛⋌⋚JEEP 发表于 2014-10-18 22:15
看提示做呀,说的是要么抛IO异常要么try,你处理的时候,用的异常是FileNotFoundException文件找不到异常, ...

就是说,还可能出现这个异常以外的异常,但是不属于这个类或其子类(如果有子类的话)。
回复 使用道具 举报
如果你是一条条处理的话,那么
  1.    fr = new FileReader("DateDemo.java");//关联的文件可能找不到,需要处理FileNotFoundException异常
  2. //如果没有读到数据,那么read方法就会让程序一直阻塞,停下来,这个时候需要处理IOException
  3. char[] buf = new char[1024];
  4.                          int num = 0;
  5.                          while ((num = fr.read(buf))!= -1)                      {
  6.                                  System.out.println(new String(buf,0,num));
  7.                          }
  8. 总之,你需要考虑的异常,在IO流里面,你需要查看一下API,如果不是很了解的可能发生的异常。如果是一起处理,一般抛大的异常或者catch大的异常,也就是多个异常的最高级,可以理解成异常的父类,这里还可以用最高级处理,比如Exception
复制代码
回复 使用道具 举报
⋛⋌⋚JEEP 发表于 2014-10-24 07:49
如果你是一条条处理的话,那么

谢谢,你的回答
回复 使用道具 举报
fr.close 我觉得不应该是 catch(FileNotFoundException) 应该是空指针异常才对
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马