Java error: unreported exception ioexception must be caught or declared to be thrown

Java error: unreported exception ioexception must be caught or declared to be thrown

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

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 的新手并尝试{}捕获{} :)

问题可能是,您将 FileReader fr 定义为 class 变量。然后你会得到一个 handle/define 异常的错误。当你为句柄异常定义try-catch时,另一个问题出现了,即"Illegal start of type"。为此你需要 define/declare:

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);
}