【问题标题】:Stop executing further code in Java停止在 Java 中执行更多代码
【发布时间】:2013-08-04 10:02:55
【问题描述】:

我查看了 Javadoc,但找不到与此相关的信息。

如果该方法中的代码要求应用程序停止执行该方法,我希望它停止执行该方法。

如果这句话令人困惑,这就是我想要在我的代码中做的事情:

public void onClick(){

    if(condition == true){
        stopMethod(); //madeup code
    }
    string.setText("This string should not change if condition = true");
}

因此,如果布尔值 condition 为真,则方法 onClick 必须停止执行进一步的代码。

这只是一个例子。我还有其他方法可以在我的应用程序中完成我想要完成的事情,但如果可以的话,它肯定会有所帮助。

【问题讨论】:

  • condition = true 是一个赋值表达式。注意区别。
  • (condition = true)总是 true
  • 这只是一个例子。抱歉错字。修好了。
  • 如果我错了,请纠正我……但问题的标题似乎具有误导性……它说“Java”,而准确地说是 Javascript 问题。标签也是Java的,而它应该是javascript的

标签: java


【解决方案1】:

只要做:

public void onClick() {
    if(condition == true) {
        return;
    }
    string.setText("This string should not change if condition = true");
}

if(condition == true)是多余的,直接写if(condition)(这样就不会误写=了)。

【讨论】:

    【解决方案2】:

    return 退出方法执行,break 退出循环执行,continue 跳过当前循环的其余部分。在您的情况下,只需 return,但如果您处于 for 循环中,例如,请执行 break 以停止循环或执行 continue 以跳到循环中的下一步

    【讨论】:

      【解决方案3】:

      要停止执行 java 代码,只需使用以下命令:

          System.exit(1);
      

      此命令后 java 立即停止!

      例如:

          int i = 5;
          if (i == 5) {
             System.out.println("All is fine...java programm executes without problem");
          } else {
             System.out.println("ERROR occured :::: java programm has stopped!!!");
             System.exit(1);
          }
      

      【讨论】:

      • System.exit() 将停止整个服务器(在 Tomcat 上测试)或应用程序。
      【解决方案4】:

      有两种方法可以停止当前方法/进程:

      1. 抛出异常。
      2. 即使是 void 方法也会返回值。

      选项:你也可以杀死当前线程来停止它。

      例如:

      public void onClick(){
      
          if(condition == true){
              return;
              <or>
              throw new YourException();
          }
          string.setText("This string should not change if condition = true");
      }
      

      【讨论】:

        【解决方案5】:

        您可以只使用return 来结束方法的执行

        【讨论】:

          【解决方案6】:

          要么return; 来自方法早期,要么throw 异常。

          除了完全退出进程之外,没有其他方法可以防止进一步的代码被执行。

          【讨论】:

            猜你喜欢
            • 2012-02-27
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-04-04
            • 2013-02-14
            • 2020-04-18
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多