Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Me ajudem com uma menssagem de erro no byte_bank

Ola, ao rodar a aplicação, sempre quando depois de executar alguns metodos, e por fim, mandar listar do banco, ele lista tudo certinho, porem apos a menssagem teclar enter para continuar, eu clico, mas ele apenas pula uma linha, apos clicar de novo, ele da a menssagem de erro e stopa a apliação...

Exception in thread "main" java.util.InputMismatchException at java.base/java.util.Scanner.throwFor(Scanner.java:939) at java.base/java.util.Scanner.next(Scanner.java:1594) at java.base/java.util.Scanner.nextInt(Scanner.java:2258) at java.base/java.util.Scanner.nextInt(Scanner.java:2212) at br.com.alura.bytebank.BytebankApplication.exibirMenu(BytebankApplication.java:66) at br.com.alura.bytebank.BytebankApplication.main(BytebankApplication.java:47)

Podem me auxiliar a desonrrolar este problema? apenas aparece o erro após listar as contas, e listagem acontece perfeitamente, porem após dar ENTER duas vezes, (pois ele não continua a aplicação) aparece a mensagem...     

O CODIGO CORRESPONDE AO QUE ESTA NO GITHUB DA AULA VERSAO 4
1 resposta
solução!

Olá, William!

Pelo que você descreveu, parece que o problema está relacionado com a entrada de dados no seu programa. A exceção InputMismatchException é lançada pelo Scanner quando você tenta ler um tipo de dado que é incompatível com o tipo de dado que foi realmente fornecido.

Por exemplo, se o seu programa está esperando um número inteiro e você fornece um texto, o Scanner lançará essa exceção.

No seu caso, parece que o problema ocorre depois de listar as contas, quando você é solicitado a pressionar enter para continuar. Se o seu programa está esperando um número inteiro (como indicado pelo método nextInt()), mas você está apenas pressionando enter, isso provavelmente está causando o problema.

Uma solução possível seria verificar o tipo de entrada antes de tentar lê-la. Aqui está um exemplo de como você pode fazer isso:

Scanner scanner = new Scanner(System.in);
System.out.println("Pressione enter para continuar...");

if (scanner.hasNextInt()) {
    int number = scanner.nextInt();
    // processa o número
} else {
    scanner.nextLine(); // consome a nova linha
    // continua com o programa
}

Neste exemplo, o método hasNextInt() verifica se a próxima entrada é um número inteiro. Se for, ele lê o número com nextInt(). Se não for, ele consome a nova linha com nextLine() e continua com o programa.

Lembre-se, este é apenas um exemplo e pode não se aplicar diretamente ao seu caso. Você precisará adaptá-lo de acordo com a estrutura do seu programa.

Espero ter ajudado e bons estudos!