标签:创建失败 null 管程 str out final nal lock 异常
finally是保证语句能一定执行的。不管程序是否会报错,我们把程序一定要执行的代码放在finally中。
比如说流的关闭,不管在读写的过程中是否报错,一定要关闭流,可以把流的关闭操作放在finally中。
代码展示如下所示:
package exception;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* finally在IO中的使用
* @author 小明
*
*/
public class FinallyDemo2 {
public static void main(String[] args) {
//以下是标准的流创建写法
FileOutputStream fos = null;
try {
fos = new FileOutputStream("fos.dat");
fos.write(1);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
try {
if(fos != null){
fos.close();
}
//报错1:有作用域,所以要把fos的定义放在try外面,否则会报错
//报错2:close()方法要求处理一个异常
//注意:在new创建的过程中也有可能报错,比如说路径不对(父路径不存在)
//这时会创建失败,那么fos仍然是空,那么这里应该多一层判断,
//因为fos为空,关闭会抛出异常。
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
这时流创建时标准的写法。
标签:创建失败 null 管程 str out final nal lock 异常
原文地址:https://www.cnblogs.com/liaoxiaolao/p/9586134.html