Si continuano a stupisce me che, in questo giorno ed età, i prodotti che hanno anni di utilizzo sotto la cintura, costruiti da team di professionisti, ancora fino ad oggi - non riescono a fornire i messaggi di errore utile per l'utente. In alcuni casi, l'aggiunta di solo un piccolo pezzo di informazioni extra potrebbe far risparmiare ore all'utente.
Un programma che genera un errore, lo ha generato per un motivo. Ha tutto a sua disposizione per informare l'utente il più possibile, perché qualcosa non ha funzionato. Eppure sembra che fornire informazioni per aiutare l'utente sia una priorità bassa. Penso che questo sia un grande fallimento.
Un esempio è di SQL Server. Quando si tenta di ripristinare un database in uso, giustamente non lo consente. SQL Server conosce quali processi e applicazioni vi accedono. Perché non può includere informazioni sui processi che stanno utilizzando il database? So che non tutti passano un Applicatio_Name
attributo sulla loro stringa di connessione, ma anche un suggerimento sulla macchina in questione potrebbe essere utile.
Un altro candidato, anche SQL Server (e mySQL) è il delizioso string or binary data would be truncated
messaggio di errore ed equivalenti. Molte volte, una semplice lettura dell'istruzione SQL che è stata generata e la tabella mostra quale colonna è il colpevole. Questo non è sempre il caso, e se il motore di database ha rilevato l'errore, perché non può farci risparmiare quel tempo e ci dice solo quale dannata colonna era? In questo esempio, potresti sostenere che potrebbe esserci un colpo di scena nel controllarlo e che ciò impedirebbe lo scrittore. Bene, lo comprerò. Che ne dici, una volta che il motore di database sa che c'è un errore, fa un rapido confronto dopo il fatto, tra i valori che sarebbero stati memorizzati, rispetto alle lunghezze delle colonne. Quindi visualizzalo per l'utente.
Anche gli orribili adattatori di tabelle di ASP.NET sono colpevoli. Le query possono essere eseguite e si può dare un messaggio di errore che dice che un vincolo da qualche parte viene violato. Grazie per quello È ora di confrontare il mio modello di dati con il database, perché gli sviluppatori sono troppo pigri per fornire anche un numero di riga o dati di esempio. (Per la cronaca, non avrei mai usato questo metodo di accesso ai dati per scelta , è solo un progetto che ho ereditato!).
Ogni volta che lancio un'eccezione dal mio codice C # o C ++, fornisco all'utente tutto ciò che ho a portata di mano. È stata presa la decisione di lanciarlo, quindi più informazioni posso dare, meglio è. Perché la mia funzione ha generato un'eccezione? Cosa è passato e cosa ci si aspettava? Mi ci vuole solo un po 'di più per inserire qualcosa di significativo nel corpo di un messaggio di eccezione. Cavolo, non fa altro che aiutarmi mentre mi sviluppo, perché so che il mio codice genera cose significative.
Si potrebbe sostenere che i messaggi di eccezione complicati non dovrebbero essere visualizzati all'utente. Anche se non sono d'accordo con questo, è un argomento che può essere facilmente placato avendo un diverso livello di verbosità a seconda della tua build. Anche allora, gli utenti di ASP.NET e SQL Server non sono i tuoi utenti tipici e preferirebbero qualcosa di pieno di verbosità e informazioni gustose perché possono rintracciare i loro problemi più velocemente.
Perché gli sviluppatori pensano che sia giusto, al giorno d'oggi, fornire la minima quantità minima di informazioni quando si verifica un errore?
E '2011 ragazzi, vieni su .