黑马程序员技术交流社区

标题: 一个关于异常编译是否通过的小练习 [打印本页]

作者: homeless    时间: 2014-3-2 11:44
标题: 一个关于异常编译是否通过的小练习
大家都说说是怎么理解的,图片里是我的理解,各抒己见,欢迎吐槽

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

异常小练习

异常小练习

作者: 洋葱骑士    时间: 2014-3-2 17:37
本帖最后由 洋葱骑士 于 2014-3-2 17:41 编辑

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

跟绕口令似的

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

作者: homeless    时间: 2014-3-2 17:49
洋葱骑士 发表于 2014-3-2 17:37
main 中的 try/catch 函数应该是捕获 fun抛出异常中产生的异常。
如果fun函数正常抛出了异常,说明fun函数 ...

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




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