A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lwy0319 高级黑马   /  2014-3-24 23:15  /  993 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我知道我之前问了为什么没得到想要的回答了。。原来是我问错了。。回顾一下毕老师的视频关于异常处理的代码如下:
  1. import java.io.*;
  2. public class IDDemo4 {
  3.         public static void main(String[] args){
  4.                 FileWriter f=null;
  5.                 try{
  6.                         f=new FileWriter("k://lala");
  7.                        
  8.                 }catch (IOException e) {
  9.                         // TODO 自动生成的 catch 块
  10.                         e.printStackTrace();
  11.                 }finally{
  12.                         try {
  13.                                 f.close();
  14.                         } catch (IOException e) {
  15.                                 // TODO 自动生成的 catch 块
  16.                                 e.printStackTrace();
  17.                         }
  18.                 }               
  19.         }
  20. }
复制代码

毕老师将f.close();放到了fianlly中,而我的想法是这样的
import java.io.*;
public class IDDemo4 {
        public static void main(String[] args){
                try{
                        FileWriter f=new FileWriter("k://lala");
                        f.close();
                }catch (IOException e) {
                        // TODO 自动生成的 catch 块
                        e.printStackTrace();
                }
        }
}
如果f对象在创建的时候出错了,那么也就没有必要继续下去关闭资源了,为什么还要像上面那么写呢?

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

2 个回复

倒序浏览
如果你try中发生了异常,并且f对象已经创建,那么f对象就无法关闭,当然我说的是在f.close()之前发生异常的话,所以才会有finally不管怎样都会执行,当然不包括服务器给当掉!

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报
sxhs2008 发表于 2014-3-24 23:23
如果你try中发生了异常,并且f对象已经创建,那么f对象就无法关闭,当然我说的是在f.close()之前发生异常的 ...

哦,明白了,比如加入写入的操作,如果仅仅是创建是没必要这样的对吧?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马