Il problema di base è quanto è facile capire e correggere l'errore di input.
Se hai una sequenza breve e semplice di "input x" ... "numero errore troppo grande, arresto anomalo", la convalida dell'input non è molto importante. Ma quando l'utente spende più di qualche secondo per inserire le informazioni, o le conservi in modo che possano riprendere da dove erano state interrotte, si arrabbieranno. Allo stesso modo, se realizzano che un valore precedente era sbagliato, vogliono tornare indietro e modificarlo. Conservare l'input e saltarci dentro significa che ora devi verificare i valori salvati (l'utente ha modificato il file dei valori salvati?).
Oppure salti il ciclo di prompt e tipo e vai direttamente a un file. A Matlab piacciono grandi file di numeri di input. Ma molto rapidamente ti ritrovi con un grosso file "di input" che deve essere verificato. Avendo messaggi di errore che dicono "on line 8637 il 18esimo valore è un float dove dovrebbe essere un numero intero compreso tra 0 e 400" è molto utile. Anche se non dovresti avere 18 valori su una riga se puoi evitarlo. Sono fastidiosi da generare, ma per l'utente "il tuo file di 30.000 righe ha un errore, vedi se riesci a trovarlo" è assolutamente inutile.
Una volta ho passato un mese a scrivere un "generatore di file di input" da utilizzare per uno scienziato. Stava alimentando i file in una grande applicazione Fortran che girava su un supercomputer, ed era molto incline al tipo o al messaggio di cui sopra. Funzionerebbe per un'ora o due, quindi dirà "profilo non valido". Nemmeno "il profilo numero 37 non è valido", solo "è successo qualcosa di brutto". Così ho scritto un'applicazione GUI che caricava il file, lo analizzava e lo visualizzava in modo modificabile, quindi lo salvavo come file di input valido per la grande macchina. Brutto come niente, un sacco di controlli di pagina nidificati e griglie grandi, ma utilizzabile. Era più economico pagarmi per farlo che continuare a pagare per il tempo del supercomputer che portava a stupidi messaggi di errore. E ha drasticamente accelerato il loro lavoro - invece di iniziare con un file che sapevano funzionasse e modificarlo un passo alla volta, alimentando ognuno nel proprio computer lento locale e vedendo se si sarebbe verificato un errore durante la notte, potevano fare un mucchio di modifiche nel mio programma quindi verificarlo localmente con la certezza che funzionerebbe.