黑马程序员技术交流社区
标题:
IO流中对异常的处理
[打印本页]
作者:
刘圣伟
时间:
2012-8-18 18:56
标题:
IO流中对异常的处理
try{
if(bufr!=null)
bufr.myClose();
}catch(IOException e){
throw new RuntimeException("Reader Error");
}
try{
if(bufr!=null)
bufw.close();
}catch(IOException e){
throw new RuntimeException("Writer Error");
}
}
复制代码
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