你所指的是检查异常,这意味着必须声明或处理它们。用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它(或声明它,以便其调用者可以处理它,依此类推)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)