Дизайн: Как обрабатывать недопустимые консольные вводы с помощью сканера? - PullRequest
1 голос
/ 03 октября 2011

С точки зрения дизайна, каков наилучший способ обработки недопустимого ввода от пользователя, определенного программистом.

Пример: я прошу пользователя ввести количество, но он вводит "lessfiejfjw".

Должен ли я сделать пользовательское исключение? Есть ли в этом случае общепринятое исключение? Или я должен просто сказать

if(!in.next().matches("\b\d+\b"){
System.out.print("Try again");
//..code to repeat method goes here
}

Спасибо за любую помощь.

Ответы [ 2 ]

2 голосов
/ 03 октября 2011

Scanner имеет класс методов для проверки, является ли следующий токен действительным целым числом и т. Д. Например, см. hasNextInt(). Позвоните до звонка nextInt() и т. Д.

Как лучше всего обрабатывать неверные данные, зависит от вашего приложения. Я полагаю, что нередко просить пользователя снова ввести значение (конечно, пропустив недопустимый токен, чтобы не создавать бесконечный цикл).

1 голос
/ 03 октября 2011

Я не думаю, что вы должны бросить исключение.Вы должны обработать ввод, показать ошибку и попросить пользователя повторить попытку.Нет причин, чтобы остановить приложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...