这里是一个Java例子,我在网上找到:使用try-finally模块处理输入流有什么好处?
try{
//use buffering
InputStream file = new FileInputStream("quarks.ser");
InputStream buffer = new BufferedInputStream(file);
ObjectInput input = new ObjectInputStream (buffer);
try{
//deserialize the List
List<String> recoveredQuarks = (List<String>)input.readObject();
//display its data
for(String quark: recoveredQuarks){
System.out.println("Recovered Quark: " + quark);
}
}
finally{
input.close();
}
} catch(ClassNotFoundException ex){
//some exception handling
}
在上面,什么是使用的好处的try-finally块与输入来执行一些处理关闭输入过吗?换句话说,将上面的代码有什么好处了这样的事情:
try{
//use buffering
InputStream file = new FileInputStream("quarks.ser");
InputStream buffer = new BufferedInputStream(file);
ObjectInput input = new ObjectInputStream (buffer);
List<String> recoveredQuarks = (List<String>)input.readObject();
for(String quark: recoveredQuarks){
System.out.println("Recovered Quark: " + quark);
}
input.close();
} catch(ClassNotFoundException ex){
//some exception handling
}
的好处是:输入被处理后关闭,即使抛出异常。 – Stultuske
虽然当然这些天尝试资源是一个更简单的方法。 –