Dipende se l'input è direttamente da un utente attraverso alcune UI, o dal sistema.
Immissione tramite un'interfaccia utente
È una domanda sull'esperienza utente come gestire input non validi. Non so del tuo caso specifico, ma in generale ci sono alcune opzioni:
- Avvisa l'utente dell'errore e fallo correggere all'utente prima di procedere (il più comune)
- Converti automaticamente nell'intervallo valido (se possibile), ma avvisa l'utente della modifica e consenti all'utente di verificare prima di procedere.
- Converti silenziosamente nell'intervallo valido e continua.
La scelta dipende dalle aspettative degli utenti e dalla criticità dei dati. Ad esempio, Google aggiusta automaticamente l'ortografia nelle query, ma questo è a basso rischio perché una modifica inutile non è un problema ed è facile da correggere (e anche in questo caso viene reso chiaro sulla pagina dei risultati che la query è stata modificata). D'altra parte, se si inseriscono le coordinate per un missile nucleare, si potrebbe desiderare una convalida dell'input più rigida e nessuna correzione silenziosa di dati non validi. Quindi non esiste una risposta universale.
Soprattutto, dovresti considerare se correggere l'input ha anche un vantaggio per l'utente. Perché un utente immetterà dati non validi? È facile vedere come qualcuno potrebbe fare un errore di ortografia, ma perché qualcuno dovrebbe inserire una longitudine di -185? Se l'utente intendesse veramente +175, probabilmente avrebbero digitato +175. Penso che sia molto probabilmente che una longitudine non valida è semplicemente un errore di battitura, e l'utente intendeva -85 o qualcos'altro. In questo caso la conversione silenziosa è cattiva e inutile . L'approccio più user-friendly per la tua app sarebbe probabilmente quello di avvisare l'utente del valore non valido e farlo correggere da solo.
Input tramite un'API
Se l'input proviene da un altro sistema o sottosistema, non ci sono dubbi. Dovresti lanciare un'eccezione. Non si dovrebbe mai convertire in silenzio l'input non valido da un altro sistema, poiché potrebbe mascherare gli errori in altre parti del sistema. Se l'input è "corretto", dovrebbe avvenire nel livello dell'interfaccia utente, non in profondità nel sistema.