That's a matter of opinion. Break, continue and return before the end of the method can all work fine if used intelligently. But I agree that a while (true) in combination with a break inside the loop should be prevented.
you can execute the program first time and on the basis of first execution decide if function is throws exception or not.
if it is throw exception then make a isValidUInput flag to false and program re run till the input is valid.