如果在打开时抛出I / O错误,我应该关闭它吗? (处理流的一般规则是否适用?)

时间:2014-12-17 18:21:32

标签: java stream inputstream ioexception fclose

new JarFile(path)可以抛出I / O异常。

如果发生这种情况,我会抓住异常,我应该关闭它吗? (我想真正的问题是,有什么可以关闭的吗?)

另一个问题是:如果有效,我应该清理吗?即,general rules for dealing with streams适用吗?

对不起,如果这个问题有点不对劲;我刚开始处理JarFile(过去也没有真正使用过流)。

1 个答案:

答案 0 :(得分:2)

如果new JarFile(path)抛出IOException

,则无法关闭
JarFile file = null;

try {
    file = new JarFile("does/not/exist");
} catch (IOException e) {
    System.out.println(file); //Prints out null
}

try {
    file.close(); //Throws NullPointerException
} catch (IOException e) {
    e.printStackTrace();
}