Migliori pratiche o raccomandazioni per la gestione delle eccezioni? [chiuso]

11

Penso che i due problemi principali con i miei programmi siano la struttura / organizzazione del codice e la gestione degli errori. Sto leggendo il codice completo 2, ma ho bisogno di qualcosa da leggere per lavorare con potenziali problemi.

Ad esempio, su un sito web, se qualcosa può accadere solo se l'utente manomette i dati tramite javascript, scrivi per quello? Inoltre, quando non trovi errori? Quando scrivi una classe che si aspetta una stringa e un int come input, e non sono una stringa e una int, la controlli, o la lasci traboccare al metodo chiamante che ha passato parametri errati?

So che questo è un argomento ampio a cui non è possibile dare una risposta in una sola risposta qui, quindi quello che sto cercando è un libro o una risorsa che è comunemente accettata come insegnamento della corretta pratica di gestione delle eccezioni.

    
posta mowwwalker 27.06.2012 - 01:23
fonte

1 risposta

12

Una delle cose positive da ricordare è eseguire la gestione delle eccezioni when there is a need .

Per la piattaforma di sviluppo .NET basta seguire le linee guida MSDN - Best practice per la gestione delle eccezioni , oltre a controllare questo bel articolo del progetto di codice - Gestione delle eccezioni Best practice in .NET

Tuttavia, le seguenti linee guida sono per lo più valide per qualsiasi piattaforma di sviluppo:

  • Non gestisci la business logic con le eccezioni. Utilizzare invece istruzioni condizionali. Se un controllo può essere eseguito con l'istruzione if-else in modo chiaro, non utilizzare le eccezioni perché riduce la leggibilità e le prestazioni (ad esempio controllo Null, controllo divide per zero). .

  • I nomi delle eccezioni devono essere chiari e significativi, indicando le cause dell'eccezione.

  • Genera eccezioni per le condizioni di errore durante l'implementazione di un metodo. Per esempio. se restituisci valori -1, -2, -3, ecc. anziché FileNotFoundException, questo metodo non può essere compreso.

  • Individua eccezioni specifiche anziché la classe Exception in alto. Ciò consentirà prestazioni aggiuntive, leggibilità e una gestione delle eccezioni più specifica.

  • Il controllo Null con condizionali non è un'alternativa alla cattura di NullPointerException. Se un metodo può restituire null, controllarlo con l'istruzione if-else. Se un ritorno può lanciare NullPointerException, prendilo.

  • Cerca di non ripetere l'eccezione a causa del prezzo. Bu se il re-lancio fosse stato un dovere, lanciare nuovamente la stessa eccezione invece di creare una nuova eccezione. Questo porterà prestazioni aggiuntive. Puoi aggiungere ulteriori informazioni in ogni livello a tale eccezione.

  • Definisci la tua gerarchia di eccezioni estendendo la classe Exception corrente (ad esempio UserException, SystemException e i relativi sottotipi) e usale. In questo modo è possibile specializzare le eccezioni e definire un modulo / livello riutilizzabile di eccezioni. altro da seguire in questo link

risposta data 27.06.2012 - 01:31
fonte