我正在通过书中的例子来学习Java。 我在下面写了代码,得到了“Unhandled exception type IOException” 为什么?我怎么能解决这个问题。我应该声明IOException类吗?
import java.nio.file.*;
public class JavaIO {
public static void main(String[] args) {
String dirString = "C:/Users/USER/Desktop/Test/Files";
Path dirPath = Paths.get(dirString);
if(Files.notExists(dirPath)){
Files.createDirectory(dirPath);
}
System.out.println("Err");
System.exit(1);
}
}
答案 0 :(得分:4)
因为Files.createDirectory()
可能会抛出java.io.IOException
并且您既没有抓住它也没有声明扔掉它。
捕获异常以处理错误
import java.nio.file.*;
public class JavaIO {
public static void main(String[] args) {
String dirString = "C:/Users/USER/Desktop/Test/Files";
Path dirPath = Paths.get(dirString);
if(Files.notExists(dirPath)){
try{
Files.createDirectory(dirPath);
} catch(java.io.IOException e){
System.out.println("createDirectory failed:" + e);
}
}
System.out.println("Err");
System.exit(1);
}
}
或添加声明以抛弃它以忽略它被抛出的可能性。
import java.nio.file.*;
public class JavaIO {
public static void main(String[] args) throws java.io.IOException {
String dirString = "C:/Users/USER/Desktop/Test/Files";
Path dirPath = Paths.get(dirString);
if(Files.notExists(dirPath)){
Files.createDirectory(dirPath);
}
System.out.println("Err");
System.exit(1);
}
}
答案 1 :(得分:3)
Files.createDirectory(Path dir, FileAttribute<?>... attrs)
抛出IOException
,这是已检查 Exception
; catch
或修改main
以表明可能被抛出。像,
public static void main(String[] args) throws IOException {
或使用try-catch
和catch
IOException
if(Files.notExists(dirPath)){
try {
Files.createDirectory(dirPath);
} catch (IOException e) {
e.printStackTrace();
}
}
答案 2 :(得分:0)
查找Try Catch并将代码中处理该文件的部分放在其中。如果无法创建文件或位置不存在,这将处理并报告异常。
答案 3 :(得分:0)
当您使用Java处理文件或执行IO操作时,由于各种原因,您可能无法访问文件或资源,这将在FIleNotFound或IO操作行引发异常条件无法执行。需要处理此异常,因为它在Java中的“已检查”异常下进行。简单地说你需要自己处理这个案例,或者让子类使用Throws,throw或try / catch块来完成它。
因此,对于“未处理的异常类型IOException”消息,Java要求您执行相同的操作。