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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴新钱 黑马帝   /  2011-8-6 16:40  /  2778 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在编写方法时我们可以throws该方法可能产生的异常,交由该方法的调用者去处理,但在main方法后throws的异常,由谁处理呢?不会是编译程序吧,那以后写程序偷懒,都在main方法后面声明异常而不处理,也没好处啊?

评分

参与人数 1技术分 +1 收起 理由
老罗 + 1

查看全部评分

7 个回复

倒序浏览
黑马网友  发表于 2011-8-6 17:14:03
沙发
那当然由虚拟机处理啊,默认处理方式只会在控制台打印栈信息

评分

参与人数 1技术分 +1 收起 理由
老罗 + 1

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-8-6 17:15:18
藤椅
哥们,我看你好像面试通过了,是不是参加第四届的?
回复 使用道具 举报
黑马网友  发表于 2011-8-7 10:01:27
板凳
回楼上,我的目标当然是第三期,只不过感觉在有些知识点的理解上不是很有把握,拿来交流,查漏补缺。

评分

参与人数 1技术分 +1 收起 理由
老罗 + 1

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-8-7 11:03:37
报纸
我建议你看看Java编程思想(thinking in java),我现在正在看。
如果我们的方法不再被其他的方法调用,我们最好自己处理异常,当发生错误时我们可以解决。
最简单的是我们可以再catch里写一句话,当发生错误时可以方便我们检查。
还有,当我们进行网络编程时,我们可以在finally里关闭我们的socket和io流连接,如果我们直接throws的话,那么当发生错误时,我们的socket和io流有可能没有close掉,那么就会造成内存的泄露。

评分

参与人数 1技术分 +1 收起 理由
老罗 + 1

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-8-9 02:27:51
地板
楼上说的不太对,记得有一个老师跟我说过,如果你写的方法不再被其他的方法调用,或者调用次数很少,可以选择try{}catch{}。但是如果调用次数很多,比如你在做项目的系统架构,你在底层定义的一个方法会产生异常,一定要throws出去,不能自己try{}catch{}掉,尤其是层层调用的时候,每一层都要向上throws,如此一旦出错,最上层的程序员会知道哪错了,如果某一层try{}catch{}掉了,那系统出问题了程序员可能根本不知道,发现有错了,找到错误来源也很麻烦
回复 使用道具 举报
黑马网友  发表于 2011-8-10 05:02:52
7#
catch之后写上一些信息再再往上抛,这个叫异常链。有时因为不能比重写的方法泡出更多异常,先捉住,再包装成RuntimeExceptiom抛出去
回复 使用道具 举报
看看.............












www.51koo.net黑客论坛 www.soyangsyl.com搜羊娱乐新闻网
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马