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

© 、海   /  2014-6-8 09:45  /  2698 人查看  /  21 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

其实是这样的,程序的流程是先执行try
然后,执行finally。因为try里面由return语句,所以会返回一个值,
但是,注意:这个返回值并不是马上就返回的,而是会暂时存放在内存中的某个地方(到底哪里我也不记得了)
然后,就会去执行finally里面的代码。
因为,这时finally里面也有一个return语句,所以它也要返回一个值,这时,finally里面的return的值就会
把前面的return 的值覆盖。
所以,最后返回的是finally里面的return的值,而不是try里面的return的值。
回复 使用道具 举报
return 语句是一个函数的结束不假,但如果函数有finally语句块,那该方法就算执行到它也不会立即结束,会继续执行finally语句块的内容。finally也有return语句很显然,它覆盖了try语句里的retrun。
回复 使用道具 举报
还没看到这:L
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马