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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© homeless 中级黑马   /  2014-3-2 11:44  /  631 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

大家都说说是怎么理解的,图片里是我的理解,各抒己见,欢迎吐槽

异常.jpg (94.89 KB, 下载次数: 2)

异常小练习

异常小练习

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

3 个回复

倒序浏览
本帖最后由 洋葱骑士 于 2014-3-2 17:41 编辑

main 中的 try/catch 函数应该是捕获 fun抛出异常中产生的异常。
如果fun函数正常抛出了异常,说明fun函数是正常执行?
然后fun()下的那句话可以被执行。
fun中抛出的异常被fun自己的catch捕获并处理,没有被抛出到main中。也就是
main中catch 捕获不到fun中throw的异常。

跟绕口令似的

又看了一遍,楼主是说的额外添加的黑体字部分呀,fun的异常被throws到了main中= =
那样的话,估计就是楼主的理解吧

评分

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

查看全部评分

回复 使用道具 举报
洋葱骑士 发表于 2014-3-2 17:37
main 中的 try/catch 函数应该是捕获 fun抛出异常中产生的异常。
如果fun函数正常抛出了异常,说明fun函数 ...

函数对那个异常进行了封装,对外不可见,符合语法,所以就编译通过了。发帖的时候没看到后面老毕的解说,呵呵。我就怕换个地方我就不认识它了。
回复 使用道具 举报
我的理解是,在左边图的代码中try语句抛出一个异常对象有func()类接收,然后再有throws语句抛给调用func的方法,在main方法中catch语句接收异常对象并对其进行处理;在右边的图中代码func方法中try语句抛出异常对象直接由下边的catch语句块进行接收处理;

评分

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

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马