做的时候尝试捕获麻烦

时间:2015-07-10 18:10:29

标签: java

我正在试图阻止我正常运行。封闭的是一个只能部分工作的try和catch块。我希望它在输入除Int之外的其他内容时捕获异常(InputMismatchException),并在除以零时捕获异常。如果任何一个捕获发生,那么目的是通过do while循环再次返回try。目前,它适用于ArithmeticException,但不适用于InputMismatchException。当我输入字符而不是Int时,它似乎循环不间断。请帮忙。我不明白为什么这个有效而不是另一个。

    int div;
    boolean check = true;

    while (check) {
        boolean result = true;
        do {
            try {
                System.out.println("The following operation will divide the first number by the second.");
                System.out.println("Enter first number.");
                example.a = user_input.nextInt();
                System.out.println("Enter second number.");
                example.b = user_input.nextInt();

                div = example.div();
                System.out.println("The result of this division is " + div);
                result = true;
            } catch (InputMismatchException e) {
                System.out.println("That is not a number. Please try again.");
                result = false;
            } catch (ArithmeticException e) {
                System.out.println("Division by zero.");
                result = false;
            }
        } while (result = true);

3 个答案:

答案 0 :(得分:3)

while (result = true)

应该是

while (result == true)

或只是

while (result)

答案 1 :(得分:2)

获取nil不会跳过错误数据,因此对geometry的下一次调用将失败并出于同样的原因。您应该尝试在捕获中调用.dae

InputMismatchException

答案 2 :(得分:0)

删除你的do,只需使用while循环

并将您的第二个更改为

while(result)