我有错误“IOException的无法访问的catch块。这个异常永远不会从try语句体中抛出。” 我想我应该使用另一个例外,但想不出哪个。该程序的目标是读取文件,并将电影对象添加到库存,作为RomCom或动作电影。但是,我还需要管理异常。
Inventory inv = new Inventory();
// TODO: Read in the input file and populate the movieList. Manage exceptions.
// On a failed movie load print the message
// "Exception " + e.getMessage() + " for film " + title. No loading."
FileReader file = new FileReader("src/movies_db.txt");
Scanner sc = new Scanner (file);
while (sc.hasNextLine()){
String line = sc.nextLine();
String [] splitline = line.split("-");
if (splitline[6]== null){// has as many parameters as an action movie
//try {// try adding to action
try{
inv.add(new Action(splitline[0], Integer.parseInt(splitline[1]), Integer.parseInt(splitline[2]),
Integer.parseInt(splitline[3]), Integer.parseInt(splitline[5])));
}
catch (IOException e){
System.out.println("Exception " + e.getMessage() + " for film " + splitline[0]+ " No loading.");
}
} // if loop
else{
try {// try adding to RomCom
inv.add(new RomCom(splitline[0], Integer.parseInt(splitline[1]), Integer.parseInt(splitline[2]),
Integer.parseInt(splitline[3]), Integer.parseInt(splitline[5]), Integer.parseInt(splitline[6])));
}
catch (IOException e){
System.out.println("Exception " + e.getMessage() + " for film " + splitline[0]+ "No loading.");
}
}
}
答案 0 :(得分:1)
您可能正在寻找NumberFormatException
:
Integer.parseInt(String)
抛出:
NumberFormatException
- 如果字符串不包含可解析的整数。
(来自here)
如果构造函数Action()
或RomCom()
或方法inv.add()
可以抛出任何异常,那么您也应该抓住它们。
答案 1 :(得分:0)
如果您正在使用像Eclipse或Netbeans这样的强大IDE,那么您应该可以单击try块中的任何方法,如果将鼠标悬停在它上面,则应该出现Javadoc,列出方法抛出的所有异常。