黑马程序员技术交流社区

标题: IO流中对异常的处理 [打印本页]

作者: 刘圣伟    时间: 2012-8-18 18:56
标题: IO流中对异常的处理
  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();
                }

分开写和写在一起有区别吗?  
作者: 张忠豹    时间: 2012-8-18 19:31
如果不看你处理异常时候的代码,应该是没有区别的!
但是你在处理两次可能抛出的异常时的方式是不一样的
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();
                }


作者: 刘圣伟    时间: 2012-8-20 08:28
哦,明白了
作者: 李宁    时间: 2012-8-20 12:04
bufos.close();发生异常跳转的话,  bufis.close();这句你还能执行到吗?






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2