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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘圣伟 中级黑马   /  2012-8-18 18:56  /  2036 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. try{
  2.                                 if(bufr!=null)
  3.                                         bufr.myClose();
  4.                         }catch(IOException e){
  5.                                 throw new RuntimeException("Reader Error");
  6.                         }
  7.                         try{
  8.                                 if(bufr!=null)
  9.                                         bufw.close();
  10.                         }catch(IOException e){
  11.                                 throw new RuntimeException("Writer Error");
  12.                         }
  13.                 }
复制代码
try {
                        bufos.close();
                        bufis.close();
                } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }

分开写和写在一起有区别吗?  

3 个回复

倒序浏览
如果不看你处理异常时候的代码,应该是没有区别的!
但是你在处理两次可能抛出的异常时的方式是不一样的
try{
                                if(bufr!=null)
                                        bufr.myClose();//在此处可能抛出IOException 异常
                        }catch(IOException e){
                                throw new RuntimeException("Reader Error");//捕获异常之后处理,处理的时候抛出RuntimeException类型的异常,处理信息是“Reader Error”
                        }
                        try{
                                if(bufr!=null)
                                        bufw.close();//在此处可能抛出IOException 异常
                        }catch(IOException e){
                                throw new RuntimeException("Writer Error");//捕获异常之后处理,处理的时候抛出RuntimeException类型的异常,处理信息是“Writer Error”
//因为处理信息不一样,导致抛出的异常对象不一样。也就导致有所区别
                        }
                }
///////////////////
如下这段代码,处理信息要是一致的话,应该是没有区别的
try {
                        bufos.close();
                        bufis.close();
                } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }

回复 使用道具 举报
哦,明白了
回复 使用道具 举报
bufos.close();发生异常跳转的话,  bufis.close();这句你还能执行到吗?

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马