Witam.
Mam pewien problem z wyjątkiem InputMismatchException.
Gdy wpisze literka a w moim programie, to wywoływana jest wówczas metoda TEST, w której podajemy nr, jeśli podamy liczbę to wypisuje na ekran ta liczbę, a jeśli nie to wyrzuca błąd w postaci komunikatu. Wszystko ładnie działa ale tylko za 1 razem... Gdy ponownie wpiszę literkę a nie mam możliwości ponownie podać nr tylko od razu wyskakuje mi błąd w postacie w/w komunikatu. I teraz pytanko czy tak ma być, bo ten wyjątek tak działa, czy coś u mnie jest nie tak? Jeśli ten wyjątek tak działa, to czy jest możliwość rozwiązania tego problemu?
Kod:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.InputMismatchException;
import java.util.Scanner;
class TEST
{
static public Scanner input=new Scanner(System.in);
static void Wypisz()
{
int nr;
try
{
nr=input.nextInt();
System.out.println("Twój nr to :"+nr);
}
catch(InputMismatchException obj)
{
System.out.println("Podałeś tekst zamiast liczby");
}
}
}
public class Plik_do_testow
{
public static void main(String[] args) throws IOException
{
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
char n;
System.out.println("jesli chcesz podac nr wpisz a i nacisnij enter, x-wyjscie");
do
{
n=(char)br.read();
if(n=='a')
{
System.out.println("Podaj nr");
TEST.Wypisz();
}
} while (n!= 'x');
}
}
Pozdrawiam Mateusz