import javax.swing.*;
import java.io.*;
import java.util.*;
class Buns {
public static void main(String[] args) {
File f= new File("Buns.dat");
f.createNewFile();
}
}
这个程序在createNewFile调用上引发IOException,任何人都可以告诉我为什么会发生这种情况?
答案 0 :(得分:3)
绕过try/catch block
,因为File#createNewFile()可能会在 IOError 的情况下抛出 IOException .IOException是已检查的异常并且在java编译器中将强制您自己在代码中handle/declare
检查异常。
try {
File f= new File("Buns.dat");
f.createNewFile();
}
catch(IOException ex){
ex.printStacktrace();
}
使用try-with-resource Statement来自 java 1.7:
try(File f= new File("Buns.dat")) {
f.createNewFile();
}
catch(IOException ex){
ex.printStacktrace();
}
如果您选择使用try-with-resource语句,唯一的区别是您不需要使用finally block. To use try-with-resource though the object which you use inside the try-with-resource statement must implement
java.lang.AutoCloseable`显式关闭您的资源。
您还可以在方法签名中使用throws clause
来传播异常。
public static void main(String[] args) throws IOException {
相关:强>
答案 1 :(得分:0)
public static void main (String [] args) throws IOException
{
File f= new File ("Buns.dat");
f.createNewFile ();
}
答案 2 :(得分:0)
检查您是否有权在正在运行的目录中创建文件。