黑马程序员技术交流社区

标题: 求教一个关于异常的问题 [打印本页]

作者: wayonEmes    时间: 2015-8-6 09:53
标题: 求教一个关于异常的问题
本帖最后由 wayonEmes 于 2015-8-13 23:30 编辑

import java.io.*;
public class InputStream1 {
        public static void main(String[] args) {
                FileInputStream fis =null;
                try{
                        fis=new FileInputStream("q:\\abc.txt");
                        
                }catch(IOException ie){
                        ie.printStackTrace();
                        System.out.println("读文件失败!");
                }finally{
                        try{
                                fis.close();
                        }catch(IOException ie){
                                throw new RuntimeException("释放资源失败!");
                        }
                }
        }
}
为什么这个程序不会抛出 运行时异常,没有在控制台打印"释放资源失败"?


作者: wayonEmes    时间: 2015-8-6 10:10
我错了!!!原来RuntimeException不是IOException的子类......
作者: 真实姓名被注册    时间: 2015-8-6 12:11
这个跟RuntimeException是不是IOException的子类有什么关系?
重新生成一个运行时异常抛出啊
作者: 真实姓名被注册    时间: 2015-8-6 12:15
如果用catch(RuntimeException e)来接收IOException,则会出现问题
作者: T-l-H、小生    时间: 2015-8-6 12:33
这种情况,一般之间都在主方法抛出就行啦
作者: Y1011    时间: 2015-8-6 13:26
T-l-H、小生 发表于 2015-8-6 12:33
这种情况,一般之间都在主方法抛出就行啦

别瞎害人吧?内部处理了还在主方法抛什么
作者: wayonEmes    时间: 2015-8-6 13:35
真实姓名被注册 发表于 2015-8-6 12:11
这个跟RuntimeException是不是IOException的子类有什么关系?
重新生成一个运行时异常抛出啊 ...

...,一慌写错了,应该是NullPointerException不是IOException的子类
作者: T-l-H、小生    时间: 2015-8-6 14:17
Y1011 发表于 2015-8-6 13:26
别瞎害人吧?内部处理了还在主方法抛什么

逗,我害人?你做过几个项目?懂MVC架构分层开发、。?了解过事务日志嘛?我说的是,就这么些简单的IO异常直接抛出去,这种代码在分层开发里面位于业务逻辑层,谁调用谁就处理。
作者: godboy001    时间: 2015-8-6 16:27
这个问题我也试了半天没搞懂,试了下,文件不存在的话,fis类型也不为空,没有API不知道它返回什么,也不知道close()能否强制关掉,只知道如果两个流的话会有先后顺序
作者: godboy001    时间: 2015-8-6 16:30
wayonEmes 发表于 2015-8-6 13:35
...,一慌写错了,应该是NullPointerException不是IOException的子类

原来如此.....
作者: Y1011    时间: 2015-8-6 17:27
T-l-H、小生 发表于 2015-8-6 14:17
逗,我害人?你做过几个项目?懂MVC架构分层开发、。?了解过事务日志嘛?我说的是,就这么些简单的IO异常 ...

哈哈。。。两句话一聊就懂你是什么选手了,人家问的什么问题也麻烦你看清楚了再来秀你的存在感,你那1年2年的开发经验就这样给了你自信?顺便说一句,头像爆炸。你也别费劲回了,low就是low,再怎么装也是无力。
作者: boboyuwu    时间: 2015-8-6 17:44
第一个io异常应该会有吧
作者: boboyuwu    时间: 2015-8-6 17:48
Y1011 发表于 2015-8-6 17:27
哈哈。。。两句话一聊就懂你是什么选手了,人家问的什么问题也麻烦你看清楚了再来秀你的存在感,你那1年2 ...

说的不错 人家就问为什么catch没捕捉到,明显抛出的异常类不对,你在主方法抛出这个异常类能捕捉到?
作者: boboyuwu    时间: 2015-8-6 18:02
IOexception不是RuntimeException父类   
作者: boboyuwu    时间: 2015-8-6 18:16
catch(IOException)  fis.close ()  关闭流的异常类是NullPointerException  出现异常后catch捕捉到IOExce异常不知道这什么玩意肯定不执行下面的throw了
作者: 陈化身1    时间: 2015-8-6 19:30
因为你打印的是文件读取失败,而不是new RuntimeException("文件读取失败")
作者: T-l-H、小生    时间: 2015-8-6 21:52
本帖最后由 T-l-H、小生 于 2015-8-6 22:01 编辑
Y1011 发表于 2015-8-6 17:27
哈哈。。。两句话一聊就懂你是什么选手了,人家问的什么问题也麻烦你看清楚了再来秀你的存在感,你那1年2 ...

哟,说得好像你有十年八年开发经验?不错啊,还挺会喷,戴个黑框锅盖发型以为你是周杰伦?还我头发爆炸,我头发长点怎么了?就是爆炸,你那头发短点是不是叫秃驴?我说对于他的那种异常根本不用处理,我是跟你说的?你是楼主? 你很寂寞?很想找人聊天?谁秀存在感谁知道。你回你的贴,我回我的贴,跟你有半毛钱关系?
作者: Y1011    时间: 2015-8-6 23:03
T-l-H、小生 发表于 2015-8-6 21:52
哟,说得好像你有十年八年开发经验?不错啊,还挺会喷,戴个黑框锅盖发型以为你是周杰伦?还我头发爆炸, ...

行了行了,离我远点吧。有些东西还真是脏得沾不得,就当我瞎了眼,好了吧?
作者: T-l-H、小生    时间: 2015-8-7 00:51
Y1011 发表于 2015-8-6 23:03
行了行了,离我远点吧。有些东西还真是脏得沾不得,就当我瞎了眼,好了吧? ...

继续喷啊,表演个一秒五喷给我看看?我回答得不正确你可以直接无视啊,上来就咬。懒得理你




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