【发布时间】:2020-10-18 17:45:50
【问题描述】:
我在 Java 中有类 Parser,如下所示:
public class Parser {
public ArrayList<MetroStop> listeArrets;
public Parser() {
this.listeArrets = new ArrayList<>();
}
public MetroStop creerArret(String [] parts) {
MetroStop arret = new MetroStop ();
arret.identifiant = Integer.parseInt(parts [0]);
arret.longitude = Double.parseDouble(parts [1]);
arret.latitude = Double.parseDouble(parts [2]);
arret.nom = parts [3];
arret.destination = parts [4];
arret.moyen = parts [5];
return arret;
}
public void parse(String fichier) throws Exception {
try {
Reader reader = new FileReader(fichier);
BufferedReader br = new BufferedReader(reader);
String line;
while((line = br.readLine ()) != null) {
String [] parts = line.split("#");
MetroStop arret = creerArret(parts);
listeArrets.add(arret);
}
br.close();
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
}
}
}
我也有 Main 类:
public class Main {
public static void main(String[] argv) {
Parser teste = new Parser();
teste.parse("ratp_arret.csv");
}
}
当我将 Main 类作为 Java 应用程序运行时,我收到此错误: “未处理的异常类型Exception”,它指向main()方法的第二行。 文件 ratp_arret.csv 位于 src 文件夹中,这也是工作目录。我使用的是 Eclipse。 我不明白这个错误来自哪里。 感谢您的帮助!
【问题讨论】:
-
错误出现在编译时,而不是运行时。该错误意味着 parse() 方法被声明抛出异常并且您没有在调用者中捕获它。
-
请阅读 Java 中的检查异常。此外,将方法声明为
throws Exception也是一种不好的做法。指定该方法抛出的确切检查异常。 -
@m0skit0 是的,我很抱歉是在我编译它的时候。这种情况我该怎么办?
-
从
parse方法的声明中删除throws Exception -
@Eritrean 我这样做了,现在我在 Parser 类中收到错误“未处理的异常类型 IOException”。