为什么 dir.mkdir() 不需要异常处理,而 file.createNewFile() 需要?

Why dir.mkdir() requires no exception handling, when file.createNewFile() does?

这是一个代码片段。

File dir = new File("dir");
        dir.mkdir();

        File file = new File(dir,"file.txt");

        try {
            file.createNewFile();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

我想知道为什么 dir.mkdir() 不需要异常处理而 file.createNewFile().

需要异常处理

我们是否非常确定 "Nothing could wrong" 在创建目录时?若有,原因为何?

好问题。

这种不同的行为确实没有充分的理由。

createNewFile()是在1.2版本的JDK中添加的,mkdir()是在1.0版本中添加的。这很可能是 API 设计师决定开发新功能以抛出 IOException.

的原因