È buona norma implementare una gestione delle eccezioni inutile, nel caso in cui un'altra parte del codice non sia codificata correttamente?
Esempio di base
Semplice, quindi non perdo tutti :).
Diciamo che sto scrivendo un'app che visualizzerà le informazioni di una persona (nome, indirizzo, ecc.), I dati estratti da un database. Diciamo che sono io a codificare la parte dell'interfaccia utente e qualcun altro sta scrivendo il codice query DB.
Ora immagina che le specifiche della tua app affermino che se le informazioni della persona sono incomplete (diciamo, il nome è mancante nel database), la persona che codifica la query dovrebbe gestirlo restituendo "NA" per il campo mancante.
Che cosa succede se la query è scarsamente codificata e non gestisce questo caso? Che cosa succede se il tipo che ha scritto la query ti gestisce un risultato incompleto e quando provi a visualizzare le informazioni, tutto si blocca, perché il tuo codice non è pronto a mostrare elementi vuoti?
Questo esempio è molto semplice. Credo che molti di voi diranno "non è un tuo problema, non sei responsabile di questo incidente". Ma è ancora la tua parte del codice che sta andando in crash.
Un altro esempio
Diciamo ora che sono io a scrivere la domanda. Le specifiche non dicono lo stesso di cui sopra, ma il tipo che scrive la query "insert" dovrebbe assicurarsi che tutti i campi siano completi quando si aggiunge una persona al database per evitare di inserire informazioni incomplete. Devo proteggere la mia query "select" per essere sicuro di fornire al ragazzo dell'interfaccia utente informazioni complete?
Le domande
E se le specifiche non dicessero esplicitamente "questo ragazzo è il responsabile della gestione di questa situazione"? Cosa succede se una terza persona implementa un'altra query (simile alla prima, ma su un altro DB) e utilizza il tuo codice UI per visualizzarlo, ma non gestisce questo caso nel suo codice?
Devo fare ciò che è necessario per prevenire un possibile arresto, anche se non sono io quello che dovrebbe gestire il brutto caso?
Non sto cercando una risposta come "(s) è lui il responsabile dell'incidente", poiché non sto risolvendo un conflitto qui, mi piacerebbe sapere, se dovessi proteggere il mio codice da situazioni non è mia responsabilità gestire? Qui sarebbe sufficiente un semplice "se vuoto fai qualcosa".
In generale, questa domanda affronta la gestione ridondante delle eccezioni. Lo sto chiedendo perché quando lavoro da solo su un progetto, posso codificare 2-3 volte una simile eccezione gestendo funzioni successive, "per ogni evenienza" ho fatto qualcosa di sbagliato e ho lasciato passare un brutto caso.