簡體   English   中英

Java 中的 Try/Catch 異常幫助

[英]Try/Catch exception help in Java

我正在制作的程序有一個基於控制台的文本菜單,可以在 1 和 2 之間選擇一個選項,我需要它來捕捉任何不是數字的輸入,也不是 1 和 2 之間的數字。這就是我所擁有的

    Scanner scan = new Scanner(System.in);
    int number = 0;
    try {
        System.out.println("Enter a number ");
        System.out.println("1.");
        System.out.println("2.");
        number = scan.nextInt();
    }
    catch (ArithmeticException e) {
        System.out.println("Arithmetic Exception");
    }
    catch (Exception e) {
        if (!(number == 1) || !(number == 2)) {
            System.out.println("Exception");
        }
    }

感謝您對我出錯的地方的任何見解!

如果你想拋出異常,這很容易,但要注意條件:

Scanner scan = new Scanner(System.in);
int number = 0;
try {
    System.out.println("Enter a number ");
    System.out.println("1.");
    System.out.println("2.");
    number = scan.nextInt();
    if ((number != 1) && (number != 2)){
        throw new Exception(); 
    }
}
catch (InputMismatchException e) {
    System.out.println("This is not a number");
}
catch (Exception e) {
   System.out.println("Inside here because the number is not 1 or 2"); 
}

條件

(number != 1) && (number != 2)

如果number不是(1 或 2),則為true

作為建議,您可以使用

if ((number != 1) || (number != 2))

代替

if (!(number == 1) || !(number == 2))

    Scanner scan = new Scanner(System.in);
    int number = 0;
    try {
        System.out.println("Enter a number ");
        System.out.println("1.");
        System.out.println("2.");
        number = scan.nextInt();
        if (number != 1 && number != 2){
            throw new Exception(); 
        }
    }
    catch (ArithmeticException e) {
        System.out.println("Arithmetic Exception");
    }
    catch (Exception e) {
       System.out.println("Inside here because the number is not 1 or 2 "); 
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM