it still doesn't catch, because you still don't throw an exception. the catch will only be executed, if there is an exception to be caught. Read More
> .Throw an error if the input number is less than zero. You missed this part out. The catch is OK, but you don't throw the exception when the input is wrong. Read More
> I dont understand, How am I not throwing an exception? eg if (! ans.equals("y") || ans.equals("n")) throw new InputMismatchException("must be y or n"); Read More