Fonti autorevoli per le best practice di gestione delle eccezioni [chiuso]

5

Il mio posto di lavoro soffre di un brutto caso dell'anti-pattern di gestione delle eccezioni di Pokemon con costrutti come il seguente che splatter nel codice base:

try {
    ...
} catch (Exception ex) {
    // Log and pretend nothing happened.
    Log.LogException(ex);        
}

Ho trovato molte risposte sui siti Stack Exchange che spiegano perché quanto sopra è sbagliato. Ma non ho trovato alcuna fonte autorevole , come libri, articoli di riviste per sviluppatori o pagine di msdn che spiegano perché non si dovrebbe scrivere codice come sopra. Ci sono fonti del genere, se sì, dove?

Modifica : direi che i blogger "famosi" contano anche come fonti autorevoli. La mia regola per ciò che conta come autorevole o no non è esattamente scolpita nella pietra.

    
posta Björn Lindqvist 04.12.2013 - 22:04
fonte

3 risposte

12

In C #, non è possibile chiedere una fonte più autorevole di Linee guida per la progettazione di quadri . Questo è ciò che gli autori della libreria di classi base .NET hanno seguito durante la progettazione delle librerie principali fornite con .NET. Comprende linee guida complete su come lavorare con le eccezioni .

In particolare , si dice:

AVOID swallowing errors by catching non-specific exceptions such as System.Exception, System.SystemException, and so on, in application code.

    
risposta data 04.12.2013 - 22:55
fonte
5

John Skeet e Eric Lippert. Ti sfido a trovare qualcuno nel mondo .NET con più potere del cervello. :)

Vorrei iniziare qui: Eccezione irritante di Eric Lippert

Quindi cerca qualsiasi cosa in relazione a entrambe le eccezioni. Anche +1 al commento del libro codice pulito. Pulisci codice di Robert Martin :)

    
risposta data 04.12.2013 - 22:26
fonte
1

Ecco un articolo di Krzysztof Cwalina, un architetto principale di Microsoft. È stato scritto sei anni fa, ma è ancora il mio go-to per ricordarmi cosa fare su vari tipi di eccezioni:

Come progettare le gerarchie di eccezioni

Divide le eccezioni in tre tipi:

  • Errori di utilizzo , come NullReferenceException, risolti correggendo il tuo codice.
  • Errori logici , come FileNotFoundException, che tecnicamente non possono essere evitati. (Anche se usi File.Exists, qualcuno potrebbe cancellarlo tra quando controlli e quando usi il file.) Devi gestirli.
  • Errori di sistema , come OutOfMemoryException, che non puoi gestire.

Nell'articolo ci sono molte buone informazioni.

    
risposta data 04.12.2013 - 23:55
fonte

Leggi altre domande sui tag