黑马程序员技术交流社区
标题:
两种finally结束流的方式,两种格式有什么区别吗?
[打印本页]
作者:
nerveva2000
时间:
2014-10-29 20:46
标题:
两种finally结束流的方式,两种格式有什么区别吗?
关闭流的时候,带着异常处理,后面不是都用finally关闭流啊
但是最近迷惑了,怎么有两种格式,有区别吗?
格式一 finally --- try{ if () buf.close();} catch(){};
finally{
try{
if (bis!=null){
bis.close();
}
}
catch(IOException e){
throw new RuntimeException("输出流关闭失败");
}
复制代码
格式二 finally --- if() try{ buf.close();} catch(){};
finally
{
if (fis != null)
try
{
fis.close();
}
catch (IOException e )
{
throw new RuntimeException ("read失败");
}
复制代码
作者:
wzg1015
时间:
2014-10-30 01:25
这能有毛的区别啊,只要你没把出现异常的之后代码放在外面就行了。唯一的区别就是上面还能在外面加个else,里面的只能在里面加else。
作者:
inception
时间:
2014-10-30 17:31
try中写的是会出现异常的语句。不会出现异常的语句if (fis != null)写在try里面或外面都无碍
作者:
小鸡捉你
时间:
2014-10-30 17:45
因为关闭流的时候也要抛出异常,如果最开始你的对象就没有获取到,fis就是空的,如果不处理,那就出错了啊
作者:
OnlyStyle
时间:
2014-10-30 19:26
第二个更专业,因为if(fis!=null)是不会出现异常的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2