输入错误的类型时,如何防止扫描仪抛出异常?

这是一些示例代码:


import java.util.Scanner;

class In

{

    public static void main (String[]arg) 

    {

    Scanner in = new Scanner (System.in) ;

    System.out.println ("how many are invading?") ;

    int a = in.nextInt() ; 

    System.out.println (a) ; 

    } 

}

如果我运行该程序并将其设置为intlike 4,则一切正常。


另一方面,如果我回答,too many那不会嘲笑我的有趣笑话。相反,我得到这个(如预期的那样):


Exception in thread "main" java.util.InputMismatchException

    at java.util.Scanner.throwFor(Scanner.java:819)

    at java.util.Scanner.next(Scanner.java:1431)

    at java.util.Scanner.nextInt(Scanner.java:2040)

    at java.util.Scanner.nextInt(Scanner.java:2000)

    at In.main(In.java:9)

有没有一种方法可以使它忽略不是int的条目,或者用“有多少个入侵者”重新提示?我想知道这两种方法。


红糖糍粑
浏览 323回答 3
3回答

大话西游666

它总是一个好处有您的应用程序抛出一个错误,当错误发生时反对的方式来保持它的发生。一种替代方法是将代码包装在的try {...} catch {...}块中InputMismatchException。您可能还希望将代码包装在while循环中,以Scanner保持提示,直到满足特定条件为止。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java