如何进入下一次迭代

时间:2011-02-08 23:58:25

标签: 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");
   }

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

4 个答案:

答案 0 :(得分:15)

使用continue关键字:

continue;

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

以下是一些进一步阅读:

continue Keyword in Java

答案 1 :(得分: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");
}

这会导致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");

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

答案 2 :(得分:3)

您要查找的关键字是continue。通过将continue放在catch块中的print语句之后,catch块结束后的剩余行将被跳过,下一次迭代将开始。

答案 3 :(得分:1)

要么

  • 在例外区块中使用continue关键字
  • 将“服务...”移至试用块的末尾