黑马程序员技术交流社区

标题: 在异常语句中的return [打印本页]

作者: 戴进飘    时间: 2012-9-26 15:36
标题: 在异常语句中的return
本帖最后由 屈俊材 于 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 不能同时使用,这是为什么呢?


作者: 郭阳    时间: 2012-9-26 16:12
因为他俩的作用在你的函数中是一样的
如果try中无异常,则在try中结束函数。(finally是必执行的代码不作详述)*****************************************************catch中的return或者最后的return有一个执行不到
如果try中发生异常,try中return执行不到,进入catch,catch内有return的话则在catch内结束函数,没有的话则到最后的return结束**********catch中的return或者最后的return有一个执行不到

作者: 李兆宁    时间: 2012-9-26 16:21
运行到return语句,函数就结束了:如果存在异常,则在catch中结束;不存在异常则在后面的return结束函数。二者只能选择一个执行。
作者: 曾浩    时间: 2012-9-26 16:27
1.当执行一个方法时遇到了return 则这个方法 就执行结束了 不会再往下面执行了 也就是说return下面的语句不会执行
在你的代码中 当执行到第9行时整个方法就执行结束了。
作者: 杨卫腾    时间: 2012-9-26 16:29
LZ 其实是这样的

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

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

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

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

外边的那个return语句就有可能执行不到了,所以是有一个return语句执行不到。
作者: 戴进飘    时间: 2012-9-26 17:45
看了你们的回复,已经明白得差不多了。谢谢




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