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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wayonEmes 中级黑马   /  2015-8-6 09:53  /  1052 人查看  /  18 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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("释放资源失败!");
                        }
                }
        }
}
为什么这个程序不会抛出 运行时异常,没有在控制台打印"释放资源失败"?

18 个回复

倒序浏览
我错了!!!原来RuntimeException不是IOException的子类......
回复 使用道具 举报
这个跟RuntimeException是不是IOException的子类有什么关系?
重新生成一个运行时异常抛出啊
回复 使用道具 举报
如果用catch(RuntimeException e)来接收IOException,则会出现问题
回复 使用道具 举报
这种情况,一般之间都在主方法抛出就行啦
回复 使用道具 举报
T-l-H、小生 发表于 2015-8-6 12:33
这种情况,一般之间都在主方法抛出就行啦

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

...,一慌写错了,应该是NullPointerException不是IOException的子类
回复 使用道具 举报
Y1011 发表于 2015-8-6 13:26
别瞎害人吧?内部处理了还在主方法抛什么

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

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

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

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

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

行了行了,离我远点吧。有些东西还真是脏得沾不得,就当我瞎了眼,好了吧?
回复 使用道具 举报
Y1011 发表于 2015-8-6 23:03
行了行了,离我远点吧。有些东西还真是脏得沾不得,就当我瞎了眼,好了吧? ...

继续喷啊,表演个一秒五喷给我看看?我回答得不正确你可以直接无视啊,上来就咬。懒得理你
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马