gpt4 book ai didi

Java 编译器提示未报告的 IOException

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:45:53 25 4
gpt4 key购买 nike

我正在尝试编写一个列出目录中所有非隐藏文件的方法。但是,当我添加条件 !Files.isHidden(filePath) 时,我的代码将无法编译,并且编译器会返回以下错误:

java.lang.RuntimeException: Uncompilable source code - unreported exception 
java.io.IOException; must be caught or declared to be thrown

我试图捕获 IOException,但编译器仍然拒绝编译我的代码。有什么明显的我想念的东西吗?代码如下。

try {    
Files.walk(Paths.get(root)).forEach(filePath -> {
if (Files.isRegularFile(filePath) && !Files.isHidden(filePath)) {
System.out.println(filePath);
} });
} catch(IOException ex) {
ex.printStackTrace();
} catch(Exception ex) {
ex.printStackTrace();
}

最佳答案

传递给 Iterable#forEach 的 lambda 表达式不允许抛出异常,所以你需要在那里处理它:

Files.walk(Paths.get(root)).forEach(filePath -> {
try {
if (Files.isRegularFile(filePath) && !Files.isHidden(filePath)) {
System.out.println(filePath);
}
} catch (IOException e) {
e.printStackTrace(); // Or something more intelligent
}
});

关于Java 编译器提示未报告的 IOException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32034591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com