返回后调用break函数?

时间:2014-08-15 18:41:17

标签: java return break

我正在使用O'Reilly的Apache ZooKeeper书中的代码,我遇到了这个函数:

String queueCommand(String command) throws KeeperException
{
  while(true)
  {
    try
      {
        String name = zk.create("/task/task-", command.getBytes(), OPEN_ACL_UNSAFE, CreateMode.SEQUENTIAL);
        return name;
        break;
      } catch (NodeExistsException e) {
        throw new Exception(name + " already appears to be running");
      } catch (ConnectionLossException e) { }
  }
}

这只是一个错误吗?我是否正确,断言是没用的?

3 个答案:

答案 0 :(得分:1)

break;语句后的return name;语句(或任何其他语句)将无法编译。无法访问的代码。

答案 1 :(得分:1)

returnbreak类似,用于完整功能而不是循环和切换。是的。

答案 2 :(得分:1)

一旦达到return语句,就不会在该方法中执行更多代码。因此,在这种情况下,实际上永远不会达到break语句,所以你没有必要这样做。我猜这个写它的人只是想要额外的(读:太)小心。

实际上,编译时编译器应该给出unreachable code警告,因为它会识别出你的程序中无法访问的部分列出了操作。

一般来说,由于这个原因,直接在return语句之后进行任何操作是非常糟糕的做法。