如何捕获reset()方法的IOException?

时间:2014-04-16 14:47:44

标签: java exception

我正在编写此代码,并且我不断收到运行时错误,告诉我需要捕获IOException。我怎么做?这是我的代码:

System.out.println( "\nThese presidents were born before the states were formed:\n");  // DO NOT REMOVE OR MODIFY
    ArrayList<String> america = new ArrayList<String>();
    String l;
    String line;
    while((line = infile2.readLine()) != null) 
    {

        america.add(line);
    }
    Collections.sort(america);
    infile1.reset();
    try
    {
        while((infile1.ready()))
        {
            ArrayList<String> am = new ArrayList<String>();
            l= infile1.readLine();
            String [] ls = l.split(" ");
            for(int i=1; i<ls.length;i++)
            {
                am.add(ls[i]);
            }
            Collections.sort(am);
            america.removeAll(am);
        }
    }
    catch( IOException ex)
    {
        System.out.println("ERROR");
    }

    System.out.println(america);

1 个答案:

答案 0 :(得分:0)

我怀疑你得到的是编译错误,而不是运行时错误。

while((line = infile2.readLine()) != null)包含对可以抛出IOException的方法的调用,但您没有使用try-catch包裹它。

infile1.reset()可能会遇到同样的问题。

原因是在Java中,检查异常;如果您正在调用的方法声明throws FooException,则需要使用try { ... } catch(FooException e) { ... }包装对该方法的调用,或者使用throws FooException标记调用方法(或异常层次结构中的任何异常)