java异常中的finally
Posted 寒潭渡鹤影
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java异常中的finally相关的知识,希望对你有一定的参考价值。
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();
}
}
}
}
这时流创建时标准的写法。
以上是关于java异常中的finally的主要内容,如果未能解决你的问题,请参考以下文章