Como evito que um scanner lance exceções quando o tipo errado é inserido?
Aqui está um exemplo de código:
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) ;
}
}
Se eu executar o programa e fornecer umint
gostar4
, então tudo vai bem.
Por outro lado, se eu respondertoo many
não ri da minha piada engraçada. Em vez disso, recebo isso (como esperado):
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)
Existe uma maneira de fazê-lo ignorar entradas que não são ints ou responder com "Quantas estão invadindo?" Eu gostaria de saber como fazer os dois.