Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 重新启动程序中的记录列表_Java - Fatal编程技术网

Java 重新启动程序中的记录列表

Java 重新启动程序中的记录列表,java,Java,我是Java新手。我正在尝试创建一个Java程序,该程序能够在程序中发生异常时重试自身(工作正常)。现在我遇到的问题是for循环中的。在这段代码中,当for循环出错时,程序本身将跳出该循环并转到catch方法。在此之后如果重试次数小于最大重试次数,则程序将从一开始重新启动。这就是我正在努力解决的问题。我想说的是,如果打印时for循环中出现异常,比如说5,我希望程序在for循环中出现异常的地方重试,而不是从头重新启动。有办法吗?我为此挣扎了一段时间,但似乎找不到一个办法。请提供帮助和代码以供参考。

我是Java新手。我正在尝试创建一个Java程序,该程序能够在程序中发生异常时重试自身(工作正常)。现在我遇到的问题是for循环中的。在这段代码中,当for循环出错时,程序本身将跳出该循环并转到catch方法。在此之后如果重试次数小于最大重试次数,则程序将从一开始重新启动。这就是我正在努力解决的问题。我想说的是,如果打印时for循环中出现异常,比如说5,我希望程序在for循环中出现异常的地方重试,而不是从头重新启动。有办法吗?我为此挣扎了一段时间,但似乎找不到一个办法。请提供帮助和代码以供参考。这是我能想到的简化代码的最好方法。在我的实际应用程序中,我现在的for循环是迭代数据库中的记录列表

main.java

public class main {
    private static int retryCounter = 1;
    private static int MAX_RETRIES = 3;

    public static void main(String[] args) {

        int retry = 1;


        try {
            while (retry <= MAX_RETRIES) {

                //method1
                //stuff code
                //more code
                //method2


                for (int i = 0; i < 11; i++) {

                    System.out.println("i");
                }


            }

            System.out.println("-----Finish Process-----");


            break;
        } catch (Exception e) {

            e.printlnStackTrace();

            retry++;

            if (retry == MAX_RETRIES) {
                System.out.println("Program retried" + retry);
                System.out.println("Program Terminated");

            }

        }





    }
公共类主{
私有静态int-retryCounter=1;
私有静态int MAX_重试次数=3;
公共静态void main(字符串[]args){
int重试=1;
试一试{

while(retry我有一个想法可能会有所帮助。我无法显示任何示例代码,但在您完成执行程序的每个步骤后,可能会设置一个标志/signal1。然后,当程序重试时,它可以自动跳到代码中最后停止的位置


1:我不知道它在java中叫什么,我想它解决了你的问题

public class main {
    private static int retryCounter = 1;
    private static int MAX_RETRIES = 3;

    public static void main(String[] args) {

        int retry = 1;

        while (retry <= MAX_RETRIES) {
            try {

                //method1
                //stuff code
                //more code
                //method2


                int i=0;
                while (i < 11) {

                    try {

                         System.out.println(i);
                          i++;

                    } catch (Exception e) {

                        e.printStackTrace();

                        i++;

                        if (i == MAX_RETRIES) {
                            System.out.println("Program retried" + retry);
                            System.out.println("Program Terminated");

                        }

                    }
                }


                retry++;
            } catch (Exception e) {

                e.printStackTrace();

                retry++;

                if (retry == MAX_RETRIES) {
                    System.out.println("Program retried" + retry);
                    System.out.println("Program Terminated");

                }

            }

        }

        System.out.println("-----Finish Process-----");

    }
}
公共类主{
私有静态int-retryCounter=1;
私有静态int MAX_重试次数=3;
公共静态void main(字符串[]args){
int重试=1;

while(在“for”之外重试Declate“i”,并将此循环更改为“while”循环。同意@pasabaporaqui或为“for”添加一个try catch循环并将标志设置为再次循环我感谢您的回复。我想知道您是否可以提供一些代码或编辑我的代码?谢谢当您在for循环中出错时,您期望什么?假设我在循环中有10个项目。当项目4出现异常时,它将重试该项目4三次,而不是从项目1开始重试。如果异常在此处修复m 4,然后它将继续检查项目5、项目6、项目7等。