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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 戴进飘 中级黑马   /  2012-9-26 15:36  /  2094 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 屈俊材 于 2012-9-26 18:46 编辑

  1. <P> public static int fangFa()
  2. {
  3.   int i = 12;</P>
  4. <P>  try
  5.   {
  6.    i = 20;
  7.    System.out.println("try:"+i);
  8.    return i;
  9.   }
  10.   catch (Exception e)
  11.   {
  12.    System.out.println(e);
  13. //  return i;
  14.   }
  15.   finally
  16.   {
  17.    i = 40;
  18.    System.out.println("finally:"+i);
  19.   }
  20.   return i;
  21. }</P>
复制代码
catch中的return 语句,和最后的return 不能同时使用,这是为什么呢?

5 个回复

倒序浏览
因为他俩的作用在你的函数中是一样的
如果try中无异常,则在try中结束函数。(finally是必执行的代码不作详述)*****************************************************catch中的return或者最后的return有一个执行不到
如果try中发生异常,try中return执行不到,进入catch,catch内有return的话则在catch内结束函数,没有的话则到最后的return结束**********catch中的return或者最后的return有一个执行不到
回复 使用道具 举报
运行到return语句,函数就结束了:如果存在异常,则在catch中结束;不存在异常则在后面的return结束函数。二者只能选择一个执行。
回复 使用道具 举报
1.当执行一个方法时遇到了return 则这个方法 就执行结束了 不会再往下面执行了 也就是说return下面的语句不会执行
在你的代码中 当执行到第9行时整个方法就执行结束了。
回复 使用道具 举报
LZ 其实是这样的

如果try中无异常,则在try中的所有语句都会读到直到结束为止。

catch中的return或者最后的return有一个执行不到

如果try代码块中发生了异常,try中的return语句是执行不到的,

程序会跳转进入catch代码块中,catch内的return语句执行到程序会返回并结束。

外边的那个return语句就有可能执行不到了,所以是有一个return语句执行不到。
回复 使用道具 举报
看了你们的回复,已经明白得差不多了。谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马