Java错误:未报告的异常ioexception必须被捕获或声明为抛出

时间:2016-01-10 14:26:57

标签: java compiler-errors try-catch bufferedreader

我无法在这里找到我的代码有什么问题

public class Library{

FileReader fr = new FileReader("D:\\Users\\Adi\\Documents\\NetBeansProjects\\Hw 7Jan-13Jan\\Date.txt");
BufferedReader br = new BufferedReader(fr);

public void add(Publication p){
    if(counter < publication.length){
        publication[counter++]=p;        
    }
}

public boolean remove(int id){
    Publication p=null;

    for(int i=0;i<counter;i++)
        if(publication[i].getId()==id){
            p=publication[i];

            for(int j=0;j<counter-1;j++)
                publication[j]=publication[j+1];
                publication[counter-1]=null;
                counter--;
        return true;        
        }

            return false;}

}

我尝试使用try{} catch{},但后来又出现了其他错误:class,interface or enum expected

感谢任何帮助!谢谢

P.S:我是这个IOException的新手并尝试{} catch {}:)

1 个答案:

答案 0 :(得分:0)

可能是问题是,您将FileReader fr定义为类变量。然后你将得到一个错误来处理/定义异常。当你为句柄异常定义try-catch时,会出现另一个问题,即,&#34;非法类型&#34;的开始。为此,您需要定义/声明:

static{
    try {
        FileReader fr = new FileReader("D:\\Users\\Adi\\Documents\\NetBeansProjects\\Hw 7Jan-13Jan\\Date.txt");
    } catch (Exception e) {
    }
}

或在Constructor中分配FileReader。

FileReader fr;

public Library(){
     try {
        fr = new FileReader("D:\\Users\\Adi\\Documents\\NetBeansProjects\\Hw 7Jan-13Jan\\Date.txt");
    } catch (Exception e) {
    }
     BufferedReader br = new BufferedReader(fr);
}