我的程序的正确例外

时间:2015-12-05 03:44:54

标签: java eclipse

我有错误“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.");
                }
            }
        }

2 个答案:

答案 0 :(得分:1)

您可能正在寻找NumberFormatException

Integer.parseInt(String)
  

抛出:
      NumberFormatException - 如果字符串不包含可解析的整数。

(来自here

如果构造函数Action()RomCom()或方法inv.add()可以抛出任何异常,那么您也应该抓住它们。

答案 1 :(得分:0)

如果您正在使用像Eclipse或Netbeans这样的强大IDE,那么您应该可以单击try块中的任何方法,如果将鼠标悬停在它上面,则应该出现Javadoc,列出方法抛出的所有异常。