2014-03-31 59 views
0

如何使它成爲「java.util.InputMismatchException」不顯示?Java - 如何用其他東西替換「java.util.InputMismatchException」錯誤

例如:

import java.util.Scanner; 

class Test { 
    public static void main(String args[]){ 

    Scanner input = new Scanner(System.in); 
    int number; 

    System.out.print("Type a number: "); 
    number = input.nextInt(); 
    System.out.println(number); 

    input.close(); 
    } 
} 

,當你在一個有效的int類型,它工作正常,像「5」,但是當用戶鍵入一個無效的INT,如「5.1」或「一」,它將在線程「主」java.util.InputMismatchException中給出錯誤。有沒有辦法繞過錯誤,並顯示/做別的事情,如果用戶鍵入一個無效的int?

像這樣:

Type in a number: a 
That is not a valid number. Try again 
+0

開始:如果你想閱讀數量,替換該行'Scanner'。 –

+1

我想你想要的是'catch'異常 – locoyou

+0

請參閱http://docs.oracle.com/javase/tutorial/essential/exceptions/index.html – vandale

回答

1

首先,你可以捕獲異常,做你想要的東西。

更好的方法是使用Scanner.hasNextInt()來測試行用戶輸入是否爲int。

System.out.println("Type a number"); 
while(!input.hasNextInt()) { 
    input.nextLine(); 
    System.out.println("That is not a valid number. Try again"); 
} 
number = input.nextInt(); 
0
number = input.nextInt(); 

上面的行讀取的整數。唯一的例外意味着你輸入的東西是別的東西(如字符串,雙)

注:通過對Javadoc去

number = input.nextDouble();