Java 显示错误消息而不是异常

Java 显示错误消息而不是异常,java,error-handling,Java,Error Handling,我正在尝试制作一个程序,从用户那里获取一个数字,并检查该数字是否为素数。我在考虑错误处理。当用户输入字符串时,程序应给出错误消息,而不是异常。我尝试了很多方法,但都没有成功。你们能帮我吗 import java.util.Scanner; public class PrimeNumber { public static void main(String[] args) { Scanner input = new Scanner(System.in); int inpu

我正在尝试制作一个程序,从用户那里获取一个数字,并检查该数字是否为素数。我在考虑错误处理。当用户输入字符串时,程序应给出错误消息,而不是异常。我尝试了很多方法,但都没有成功。你们能帮我吗

import java.util.Scanner;

public class PrimeNumber {

  public static void main(String[] args) {

    Scanner input =  new Scanner(System.in);
    int inputNum;
    int remainingNum;
    System.out.println("Enter a number: ");

    inputNum = input.nextInt();

    if(inputNum < 0){      
      System.out.println("Please enter a possitive number.");      
    }

    for(int i = 2; i<=inputNum; i++) {

      remainingNum = inputNum % i;

      if(remainingNum == 0){
        System.out.println("This number is not a prime number.");
        break;
      }
      if(remainingNum == 1){
        System.out.println("This is a prime number!");
        break;
      }
    }
  }
}
import java.util.Scanner;
公共类素数{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
int-inputNum;
整数剩余数;
System.out.println(“输入一个数字:”);
inputNum=input.nextInt();
如果(inputNum<0){
System.out.println(“请输入一个可能的数字”);
}

对于(int i=2;i只需将其放在try catch中,然后在catch子句中出现异常时打印您的消息。如果用户输入非整数输入,这一行很简单

inputNum = input.nextInt();
将引发异常(一个
InputMismatchException
)。Java处理异常的方式是通过
try catch
块:

try {
    inputNum = input.nextInt();
    // ... do domething with inputNum ...
} catch (InputMismatchException e) {
    System.out.println("Invalid input!");
}

注意:如果您想了解更多关于异常的信息(并且必须了解),您可以阅读。

如果您需要先检查输入,如果是质数检查,如果无效,则提示用户输入另一个输入,直到用户输入有效的输入,请尝试此操作

          String inputString;
            boolean isValid = false;

            while(isValid == false){
            //sysout for input 
            inputString = input.nextLine(); 

            if(inputString.matches("[0-9]+")){

                // check for prime
                isValid = true;

            }else{

           //printin error
               }

            }
        }

感谢每一个人,尤其是克里斯蒂安。这是最新的密码

导入java.util.InputMismatchException; 导入java.util.Scanner

公共类素数{

public static void main(String[] args) {






    try {
        Scanner input =  new Scanner(System.in);
        int inputNum;
        int remainingNum;
        System.out.println("Enter a number: ");

        inputNum = input.nextInt();

    for(int i = 2; i<=inputNum; i++) {

            remainingNum = inputNum % i;



            if(remainingNum == 0){
                System.out.println("This number is not a prime number.");
                break;


            }


            if(remainingNum == 1){
                System.out.println("This is a prime number!");
                break;
            }


        }


    } 
    catch (InputMismatchException e) {
        System.out.println("Invalid input!");
    }









}



}
publicstaticvoidmain(字符串[]args){
试一试{
扫描仪输入=新扫描仪(System.in);
int-inputNum;
整数剩余数;
System.out.println(“输入一个数字:”);
inputNum=input.nextInt();

对于(int i=2;IEException处理是您的意思,是吗?您读到了什么:。您称之为“编译器错误”的是异常。您得到的异常是什么?