尝试、捕获和异常处理

Try, catch and Exception handling

Test class:

package learning;

import java.io.IOException;
import java.util.Scanner;

public class Test {
    static Scanner user = new Scanner(System.in);
    public static void main(String[] args) {
        Test2 t = new Test2();
        try {
            t.run(0);
        } catch (Exception e) {
            try {
                t.run(user.nextInt());
            } catch (Exception ee) {
                try {
                    t.run(user.nextInt());
                } catch (Exception dd) {}
            }
        }
    }
}

Test2 class:

package learning;

import java.io.IOException;

public class Test2 extends Test {
    public int x = 0;

    public void run(int a) throws Exception, IOException {
        do {
            if (a > 1)
                System.out.println(a);
            x = x + 1;
            if (a < 1) {
                System.out.println("you're wrong");
                throw new Exception();
            }
        } while (x==0);
    }
}

如果 a > 0 它将停止 运行,但是当我用字符串回答时它也会停止 运行。我如何让程序再次询问,如果我输入 2 次小于 1 的数字,它也会停止 运行 如何让它变得无穷无尽?

让任何事情变得无穷无尽的最简单方法是在其上抛出一个 while(true) 循环。更好的编程实践可能包括通过执行 while(started) 和将 started 设置为 false 来正确处理。

在你的情况下,我不确定你的意图是什么......所以下面应该有效。还要摆脱那个 do while 循环。老实说,这段代码完全可以写得更干净,但你现在可以随便玩玩。

public class Test {
static Scanner user = new Scanner(System.in);
public static void main(String[] args) {
    Test2 t = new Test2();
    while(true) {
        try {
            t.run(user.nextInt());
            Thread.Sleep(50);
        } catch (Exception e) {
        }
    }
}