Étant donné que Java n'a pas de type nullable, ni de TryParse(), comment gérer la validation des entrées sans lever d'exceptions ?
Comme d'habitude :
String userdata = /*value from gui*/
int val;
try
{
val = Integer.parseInt(userdata);
}
catch (NumberFormatException nfe)
{
// bad data - set to sentinel
val = Integer.MIN_VALUE;
}
Je pourrais utiliser une expression rationnelle pour vérifier s'il est possible de l'analyser, mais cela semble également entraîner beaucoup de frais généraux.
Quelle est la meilleure pratique pour gérer cette situation ?
EDIT : Justification : Il y a eu beaucoup de discussions sur l'OS à propos de la gestion des exceptions, et l'attitude générale est que les exceptions ne devraient être utilisées que pour des scénarios inattendus. Cependant, je pense qu'une mauvaise entrée utilisateur est PRÉVUE, et non rare. Oui, c'est vraiment un point académique.
Autres modifications :
Certaines des réponses démontrent exactement ce qui ne va pas avec l'OS. Vous ignorez la question posée et répondez à une autre question qui n'a rien à voir avec celle-ci. La question ne porte pas sur la transition entre les couches. La question n'est pas de savoir ce qu'il faut retourner si le nombre est indéchiffrable. Pour autant que vous le sachiez, val = Integer.MIN_VALUE ; est exactement la bonne option pour l'application d'où provient cet extrait de code totalement hors contexte.