That is probably proper, but shouldn't this work also...since you are using a boolean in yours anyway, why use the catch blocks?

boolean goodInput = false;


while(!goodInput) {
goodInput =...