3 回答

TA贡献1786条经验 获得超13个赞
您所指的是检查异常,这意味着必须声明或处理它们。用Java处理文件的标准结构如下所示:
InputStream in = null;
try {
in = new InputStream(...);
// do stuff
} catch (IOException e) {
// do whatever
} finally {
if (in != null) {
try {
in.close();
} catch (Exception e) {
}
}
}
丑吗?当然。冗长吗?当然。Java 7将通过ARM块使它更好一点,但是直到那时,您仍然只能使用上面的代码。
您还可以让调用方处理异常:
public void doStuff() throws IOException {
InputStream in = new InputStream(...);
// do stuff
in.close();
}
尽管即使这样,也close()应该将其包装成一个finally块。
但是上面的函数声明说,此方法可以抛出IOException。由于这是一个已检查的异常,此函数的调用者将需要catch它(或声明它,以便其调用者可以处理它,依此类推)。

TA贡献1850条经验 获得超11个赞
如果将获取文件放入中try
,finally
即使获取失败也将运行发布部分(),这是错误的。/现在,您可以尝试一些代码来检查获取是否成功,然后再运行发行版。但是经验表明,这种方法通常编写不正确(并且显然未经测试),因此您不妨使用更简单的代码
添加回答
举报