Увидев, что Java не имеет типов с нулевым значением и не имеет TryParse(), как вы обрабатываете входную проверку без исключения исключений?
Обычный способ:
String userdata = /*value from gui*/
int val;
try
{
val = Integer.parseInt(userdata);
}
catch (NumberFormatException nfe)
{
// bad data - set to sentinel
val = Integer.MIN_VALUE;
}
Я мог бы использовать регулярное выражение для проверки его синтаксического анализа, но это тоже похоже на накладные расходы.
Какая наилучшая практика для решения этой ситуации?
EDIT: Обоснование: Было много разговоров о SO об обработке исключений, и общая позиция заключается в том, что исключения должны использоваться только для неожиданных сценариев. Тем не менее, я думаю, что неправильный ввод пользователя ОЖИДАЕТ, а не редко. Да, это действительно академическая точка.
Дальнейшие изменения:
Некоторые ответы показывают, что не так с SO. Вы игнорируете задаваемый вопрос и отвечаете на другой вопрос, который не имеет к этому никакого отношения. Вопрос не в том, чтобы переходить между слоями. Вопрос не в том, что нужно вернуть, если число несовместимо. Насколько вам известно, val = Integer.MIN_VALUE; является в точности правильной опцией для приложения, из которого извлекается этот полностью контекстный фрагмент кода.