-2

以下不断报告相同的错误。

public static ArrayList<File> findMatches(File directory, String pattern) throws FileNotFoundException {
60         ArrayList<File> container = new ArrayList<File>();
61 
62         return container;
63     }

我用以下方式初始化它

ArrayList<File> matched = findMatches(new File("hw9"), "FileFinder.java");

错误:错误:未报告的异常 FileNotFoundException; 必须被抓住或宣布被扔掉

有什么解决办法吗?

编辑

终于知道怎么做了!

public static ArrayList<File> findMatches(File directory, String pattern) throws FileNotFoundException {
    ArrayList<File> container = new ArrayList<File>();

    try {
        if (!directory.exists() && !directory.canRead() && !directory.isDirectory()) {
            throw new FileNotFoundException();
        }
        File[] fileStack = directory.listFiles();
        for (int i = 0; i < fileStack.length; i++) {
            if (patternMatches(pattern, fileStack[i].getName())) {
                container.add(fileStack[i]);
            }
        }
    } catch (NullPointerException e) {
        throw new FileNotFoundException();
    }
    return container;
}
4

1 回答 1

5

有什么解决办法吗?

好吧,你有三个选择:

  • 更改findMatches使其不声明它会抛出FileNotFoundException(目前它肯定不会抛出它)
  • FileNotFoundException在调用代码中捕获
  • 声明方法调用findMatchesthrowsFileNotFoundException

从您提供的极少量信息中,我们无法判断哪个最合适。

您还需要阅读Java 教程的异常部分,或者任何好的 Java 书籍/教程的异常覆盖。了解您收到此错误的原因以及上述更改可以解决此问题的原因非常重要。

于 2013-04-28T19:18:29.183 回答