尝试,捕获和异常处理

时间:2015-02-08 23:49:01

标签: java exception try-catch

Test上课:

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上课:

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 个答案:

答案 0 :(得分:0)

让无穷无尽的最简单方法就是在它上面抛出一段时间(真实的)循环。更好的编程实践可能包括通过执行(启动)和设置启动为false来正确处理。

在你的情况下,我不确定你的意图是什么......所以以下内容应该有效。也摆脱了while 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) {
        }
    }
}