Вам нужно поместить все ваши вызовы в методы Scanner, такие как nextInt
, внутри блока try.
В противном случае, исключение выдается перед блоком try, поэтому ваш блок catch никогда не будет запущен. То, что у вас есть, никогда не вызовет исключение InputMismatchException, но если sc.nextInt()
, то есть перед блоком catch, когда-либо завершится неудачей, то InputMismatchException останется необработанным.
try{
System.out.print("Enter name: ");
String name=sc.nextLine();
System.out.print("Enter age: ");
int age=sc.nextInt();
System.out.print("Enter Gender: ");
char gender=sc.next().charAt(0);
System.out.print("Enter Contact no: ");
long number=sc.nextLong();
m.setName(name);
m.setAge(age);
m.setGender(gender);
m.setContactNo(number);
System.out.println("Registered Successfully");
}
catch(InputMismatchException e){
System.out.print("Invalid Input");
}