Я бы избегал использовать try / catch для чего-либо, кроме ошибок в программе. В общем, вы хотите в первую очередь предотвратить возникновение исключений, чтобы не было необходимости в блоках try / catch. Если пользователь может ввести неправильное значение, вам следует просто проверить его с помощью оператора if
(или условия в вашем while
l oop) и запросить у пользователя новое значение вместо того, чтобы вызывать исключения.