1128Fermer1130
BrunniLe 10/05/2010 à 13:59
GoldenCrystal (./1124) :
Ne pas vérifier l'entrée utilisateur est également un bug, donc ça doit lancer une exception. Dans ce cas précis, soit tu as une méthode CheckUserInput, avec un code de retour (à priori un booléen), soit tu interceptes l'exception qui se produit le cas échéant.

Justement à ce sujet je me suis toujours demandé ce qui est le mieux. Si tu as une classe Record avec setInput(...), mon point de vue voudrait que je vérifie que les paramètres puissent jouer avant d'appeler setInput. Ce qui veut dire qu'il devrait y avoir une méthode validateInput(...) dans Record qui permette de savoir si l'input est bonne avant d'appeler setInput.
Le problème avec cette méthode c'est qu'on duplique la vérification, puisque setInput devra le faire de son côté aussi (question de sécurité, ça évite que quelqu'un qui se servirait mal de Record puisse définir des données non-valides).
D'un autre côté la solution avec les exceptions n'est pas terrible. Perso j'ai jamais eu à me soucier de ça puisque je faisais en sorte que les champs ne permettent que des valeurs correctes (via regex & co.), donc si une exception devait survenir c'est que mon code de vérification des champs est faux, donc légitime de s'inquiéter...