如何进入下一个互动

Joh*_*ohn 6 java for-loop try-catch

这就是我想要做的事情:在循环中,如果程序发现错误,它将打印出"Nothing"并转到下一个循环(跳过打印输出""在端口发现的服务:"+ px +"\n "

   for(int px=PORT1; px <=PORT2; px++) { //search
       try{

           Socket s = new Socket(IPaddress,px);
       } catch(Exception e) {
               System.out.print("Nothing\n");
               // I want to go to next iteration

           }
       System.out.print("Service discovered at port: " + px + "\n");
   }
Run Code Online (Sandbox Code Playgroud)

我应该在捕获中放入什么代码?"休息"或"下一步"或??? (这是java)

Mic*_*ael 15

使用continue关键字:

continue;
Run Code Online (Sandbox Code Playgroud)

它将打破当前的迭代并从循环的顶部继续.

这里有一些进一步的阅读:

继续Java中的关键字


tem*_*def 14

如果只想在特定点抛出异常,只打印出一条消息(或执行一些代码),那么将该代码放在可能引发异常的行之后:

try {
    Socket s = new Socket(IPaddress,px);
    System.out.print("Service discovered at port: " + px + "\n");
} catch(Exception e) {
    System.out.print("Nothing\n");
}
Run Code Online (Sandbox Code Playgroud)

print如果抛出异常,则会导致不执行,因为try语句将被中止.

或者,您可以从以下内容中获得continue声明catch:

try {
    Socket s = new Socket(IPaddress,px);
} catch(Exception e) {
    System.out.print("Nothing\n");
    continue;
}
System.out.print("Service discovered at port: " + px + "\n");
Run Code Online (Sandbox Code Playgroud)

如果抛出异常,这会导致try/catch之后的所有代码都不执行,因为显式地告诉循环进入下一次迭代.

  • +1回答原始问题并提供一个好的选择. (2认同)