Cela dépend si l'entrée provient directement d'un utilisateur via une interface utilisateur ou du système.
Entrée via une interface utilisateur
Il s’agit d’une question d’expérience utilisateur sur la gestion des entrées non valides. Je ne connais pas votre cas particulier, mais en général, il y a quelques options:
- Avertir l'utilisateur de l'erreur et lui demander de la corriger avant de continuer (la plus courante)
- Convertissez automatiquement dans la plage valide (si possible), mais avertissez l'utilisateur du changement et laissez-le vérifier avant de poursuivre.
- Convertissez silencieusement dans la plage valide et continuez.
Le choix dépend des attentes de vos utilisateurs et de l’importance des données. Par exemple, Google corrige automatiquement l'orthographe dans les requêtes, mais le risque est faible, car une modification peu utile ne pose pas de problème et est facile à corriger (et même dans ce cas, il est clairement indiqué sur la page de résultat que la requête a été modifiée). D'autre part, si vous entrez les coordonnées d'un missile nucléaire, vous souhaiterez peut-être une validation d'entrée plus rigide et aucune solution silencieuse des données non valides. Donc, il n'y a pas de réponse universelle.
Plus important encore, vous devez vous demander si la correction d'une saisie présente un avantage pour l'utilisateur. Pourquoi un utilisateur entrerait-il des données invalides? Il est facile de voir comment quelqu'un pourrait faire une faute d'orthographe, mais pourquoi quelqu'un entrerait-il une longitude de -185? Si l'utilisateur voulait vraiment dire +175, il aurait probablement tapé +175. Je pense qu'il est fort probable qu'une longitude non valide soit simplement une erreur de frappe, et l'utilisateur voulait dire -85 ou quelque chose d'autre. Dans ce cas, la conversion en silence est mauvaise et inutile . L’approche la plus conviviale pour votre application consisterait probablement à alerter l’utilisateur de la valeur non valide et à lui demander de la corriger elle-même.
Entrée via une API
Si l'entrée provient d'un autre système ou sous-système, il n'y a pas de doute. Vous devriez lancer une exception. Vous ne devriez jamais rendre silencieuse la conversion d'une entrée non valide d'un autre système, car cela pourrait masquer des erreurs ailleurs dans le système. Si l'entrée est "corrigée", cela devrait se produire dans la couche d'interface utilisateur et non plus profondément dans le système.