Я на семинаре объясню, почему плохо кидать и ловить Exception.
Смотрите, как получилось. Я даю откровенно невалидный ввод "999999999999999999999999". Integer.parseInt() выкидывает NumberFormatException, вы не ловите его по месту выброса (и это правильно), но ловите его здесь. Пишете в stdout: "For input string: 9999999999999999999". Пользователь недоумевает.

1. Вы не обработали ошибку.
2. Вы об этом не узнаете, потому что параноидально отлавливаете все эксепшены.

Так делать не надо.
Условьтесь, что у себя в приложении при невалидном вводе вы кидаете, например, IOException. И отлавливайте только его. Тогда в случае с каким-то неожиданным фейлом вы хотя бы о нем узнаете.