Hai qualche linea guida del team riguardante le eccezioni? [chiuso]

8

Il mio team ha recentemente ereditato un progetto da un team in cui la quantità di sviluppatori è scesa così in basso da dover scaricare un po 'di lavoro. Uno dei progetti che abbiamo ereditato era un progetto disseminato di codice annidato e una gestione delle eccezioni terribile (le eccezioni erano effettivamente gestite come istruzioni goto e quindi utilizzate come parte del normale flusso del programma).

Tutto sommato si trattava di una sfera di codice pelosa che qualcuno aveva tossito per alcuni anni.

Ora abbiamo adottato alcune linee guida di team per un po 'di tempo, ma tutti gli aspetti relativi alle strutture degli oggetti, agli stili di codifica e cosa no. Ma non abbiamo trattato la gestione delle eccezioni.

Quindi mi chiedo se hai delle linee guida nei tuoi team riguardo alla gestione delle eccezioni e, in caso affermativo, come le fai applicare?

    
posta Morten 21.12.2010 - 11:08
fonte

5 risposte

4

Sebbene non siano linee guida ufficiali su nessuna squadra in cui sia mai stato, ritengo che le eccezioni dovrebbero essere utilizzate solo per condizioni veramente eccezionali, o quando assolutamente (per qualche motivo) devi alzare le mani e lasciare il tuo chiamante (o bolla dal tuo attuale punto, potenzialmente fino all'utente) sa che non c'è assolutamente alcun modo in cui un particolare componente può funzionare nelle condizioni attuali e non è possibile recuperare senza un qualche tipo di esterno (altro modulo o utente).

    
risposta data 21.12.2010 - 14:22
fonte
1

Non abbiamo regole specifiche per la gestione delle eccezioni per il nostro team, ad eccezione delle solite: non utilizzare eccezioni per il comportamento "normale", non limitarti a inghiottire eccezioni, ecc.

L'anestesia statica può aiutarti a catturarne alcuni (a seconda della lingua che usi) ma sarai più sicuro con le revisioni del codice.

    
risposta data 21.12.2010 - 12:23
fonte
1

Al momento non abbiamo linee guida esplicite, soprattutto perché nessuno nel mio team sbaglia. (A differenza di molti altri argomenti, esiste un consenso generale su quando e come dovrebbero essere utilizzate le eccezioni)

Ma li implementerei sicuramente lo stesso giorno in cui vedo un'eccezione abusata come goto.

    
risposta data 21.12.2010 - 12:26
fonte
0

Penso che le eccezioni dovrebbero rappresentare delle eccezioni. Penso che sia abusivo e genera un sovraccarico quando si utilizzano le eccezioni come flusso di lavoro nel codice. Quindi, mantienili dettagliati e usali solo quando succede qualcosa di inaspettato.

Nota: vassoio per evitare i mistack più comuni, come non passare il database delle connessioni a una funzione o cose del genere. Ma piuttosto usali quando la primaryKey non esiste e ne hai bisogno per fare qualcosa.

    
risposta data 21.12.2010 - 13:27
fonte
0

Mi dispiace per te che tu abbia dovuto ereditare codice da persone che abusano di eccezioni per essere dichiarazioni goto-like.

Cerco sempre di catturarli quando qualsiasi input dell'utente o qualcosa che va oltre il mio controllo può accadere (es: IOExceptions), ma tutto ciò che potrebbe essere un errore di codifica (es: NullPointerException) è qualcosa che cercherò di rilevare con affermazioni precoci in sviluppo.

La performance colpita da quel tipo di codifica è un enorme negativo. Mi chiedo se la compagnia si sia ristretta a causa di terribili sviluppatori che si sono messi in disordine oltre la comprensione ...

    
risposta data 09.05.2015 - 23:14
fonte

Leggi altre domande sui tag