捕获块不允许用户继续执行程序

用户名

我在使用Java的catch块时遇到了一些困难。帮助将不胜感激。

do {
    System.out.println ("If you want to exit the program, press 0. To continue, press 1.");
        try {
            returnint = Input.nextInt();    
        } catch (Exception e) {
            returnint=12;
            return; //after this code executes, I CANNOT RE-ENTER A NUMBER
        } finally {
        if (!(returnint==1 || returnint==0)) {
            System.out.println ("Invalid response. Please retry.");
        } continue;
    } while (returnint!=1 && returnint!=0);

所以问题是由于某种原因,循环不会重复。我们对此将提供任何帮助,包括更好地理解try-catch-finally块。

编辑:在程序的开始还有一个try块,并且在程序返回到那里之后,它也会以某种方式触发它。这里有什么帮助吗?

编辑2:下面的完整代码。

import java.util.Scanner;


public class PrimeNumberChecker {

/**
 * @param args
 */
public static void main(String[] args) {
    int returnint=1;
    boolean isprime=true;
    Scanner Input = new Scanner(System.in); //creates scanner
do{ 
    long prime,root,primediv,i;
    try {
    System.out.println("Please input a number to be checked"); //prompts user for input
    prime = Input.nextLong();//detects and stores next int input
    }catch(Exception exc){
        System.out.println("The following exception has been thrown: "+exc+"  Program aborted.");
        returnint=0;
        return;
    }
    root=(long) Math.sqrt(prime); //takes the int sqrt of the input number
    for(i=2;(i<=root&&isprime==true);i++){ //for loop to check for prime factors
        if (prime%i==0) {  //if a number divides into the number exactly, this returns true
            isprime=false;  //and so this returns false
        }
    }

    if (isprime==false) {
        primediv=prime;
        System.out.println("The number is not prime.");
        System.out.println("The factors of the number are: ");
            for(i=2;primediv>1;i++) {   //this is a loop to factorise the number if it is NOT prime
                if (primediv%i==0) {   //if it finds a factor, it prints it and checks if the factor appears twice
                    primediv=primediv/i;
                    System.out.println(i);
                    i--;
                }
            }
    } else {
        System.out.print(prime);  //the output if the number is prime
        System.out.println(" is a prime number");
    }
    try {
        do {
            System.out.println ("If you want to exit the program, press 0. To continue, press 1.");
            if (!(returnint==1 || returnint==0)) {
                System.out.println ("Invalid response. Please retry.");
            }
            returnint = Input.nextInt();    
          continue;
        } while (returnint!=1 && returnint!=0);
    } catch (Exception e) {
        System.out.println("ERROR: " + e.getMessage());
        throw e;
    } finally {   
        System.out.println("Exit. Return value was set to " + returnint);
    }   
}while (returnint==1);
}

}

格雷格·琼斯

这个怎么样:

int returnint = 0;
try {
    do {
        System.out.println ("If you want to exit the program, press 0. To continue, press 1.");
        if (!(returnint==1 || returnint==0)) {
            System.out.println ("Invalid response. Please retry.");
        }
        returnint = Input.nextInt();    
      continue;
    } while (returnint!=1 && returnint!=0);
} catch (Exception e) {
    System.out.println("ERROR: " + e.Message());
} finally {   
    System.out.println("Exit. Return value was set to " + returnint);
}   

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

捕获异常并继续执行程序是否是最佳实践?

来自分类Dev

如果捕获到JsonParse错误,如何继续执行程序

来自分类Dev

Python 3.7.2 Windows x86可执行安装程序不允许单用户安装

来自分类Dev

AuthorizationException:不允许用户模拟用户

来自分类Dev

抱歉,用户nagios不允许以<HOST>根用户身份执行'SCRIPT.sh'

来自分类Dev

不允许执行本机操作

来自分类Dev

gets() 不允许先执行 cout

来自分类Dev

Django LoginRequiredMixedIn不允许用户登录

来自分类Dev

不允许用户删除日志文件

来自分类Dev

不允许操作。对于root用户?

来自分类Dev

IAM:用户不允许CloudFormation:GetTemplateSummary

来自分类Dev

不允许用户输入重复值

来自分类Dev

不允许使用 GRANT 创建用户

来自分类Dev

Rails应用程序外键错误:不允许管理用户删除以下用户:

来自分类Dev

分离子进程以继续执行程序

来自分类Dev

贝宝自适应支付-不允许用户执行此操作

来自分类Dev

安装RVM,在Debian 7上获取错误用户的Ruby不允许执行

来自分类Dev

贝宝自适应支付-不允许用户执行此操作

来自分类Dev

程序中不允许OCaml'_a吗?

来自分类Dev

不管尝试什么,Oracle都不允许我继续

来自分类Dev

Python:等待用户输入,如果10分钟后仍未输入,则继续执行程序

来自分类Dev

应用程序入口点-子操作不允许执行重定向操作

来自分类Dev

程序包执行期间不允许DML操作

来自分类常见问题

试图使用codesign签署OSX应用程序的“不允许用户交互”

来自分类Dev

C ++用户定义的字符串需要包含空格(但程序不允许。.?)

来自分类Dev

Java简单程序不允许接受用户输入

来自分类Dev

Java Scanner实用程序不允许用户在循环中重新输入输入

来自分类Dev

C预处理程序:行继续:为什么在反斜杠字符('\')之后不允许完全注释?

来自分类Dev

无法将值NULL插入列“”,表列不允许为空。INSERT失败。无法执行以下SQL块

Related 相关文章

  1. 1

    捕获异常并继续执行程序是否是最佳实践?

  2. 2

    如果捕获到JsonParse错误,如何继续执行程序

  3. 3

    Python 3.7.2 Windows x86可执行安装程序不允许单用户安装

  4. 4

    AuthorizationException:不允许用户模拟用户

  5. 5

    抱歉,用户nagios不允许以<HOST>根用户身份执行'SCRIPT.sh'

  6. 6

    不允许执行本机操作

  7. 7

    gets() 不允许先执行 cout

  8. 8

    Django LoginRequiredMixedIn不允许用户登录

  9. 9

    不允许用户删除日志文件

  10. 10

    不允许操作。对于root用户?

  11. 11

    IAM:用户不允许CloudFormation:GetTemplateSummary

  12. 12

    不允许用户输入重复值

  13. 13

    不允许使用 GRANT 创建用户

  14. 14

    Rails应用程序外键错误:不允许管理用户删除以下用户:

  15. 15

    分离子进程以继续执行程序

  16. 16

    贝宝自适应支付-不允许用户执行此操作

  17. 17

    安装RVM,在Debian 7上获取错误用户的Ruby不允许执行

  18. 18

    贝宝自适应支付-不允许用户执行此操作

  19. 19

    程序中不允许OCaml'_a吗?

  20. 20

    不管尝试什么,Oracle都不允许我继续

  21. 21

    Python:等待用户输入,如果10分钟后仍未输入,则继续执行程序

  22. 22

    应用程序入口点-子操作不允许执行重定向操作

  23. 23

    程序包执行期间不允许DML操作

  24. 24

    试图使用codesign签署OSX应用程序的“不允许用户交互”

  25. 25

    C ++用户定义的字符串需要包含空格(但程序不允许。.?)

  26. 26

    Java简单程序不允许接受用户输入

  27. 27

    Java Scanner实用程序不允许用户在循环中重新输入输入

  28. 28

    C预处理程序:行继续:为什么在反斜杠字符('\')之后不允许完全注释?

  29. 29

    无法将值NULL插入列“”,表列不允许为空。INSERT失败。无法执行以下SQL块

热门标签

归档