2011-10-18 15 views
5

Sto iniziando a imparare Java e scrivere le mie prime classi di utilità in Java che dovrebbero essere in produzione. Sono un po 'perso quando si tratta di gestire le eccezioni. C'è qualche figura di riferimento su quante dichiarazioni di prova ci sono in determinate righe di codice?Best practice nella gestione delle eccezioni java

Quanta frazione di codice deve occuparsi delle eccezioni .. qualsiasi plugin per Eclipse?

È buona prassi includere 3-4 istruzioni in un blocco try e rilevare un'eccezione o includere 10-12 righe in un blocco try e quindi includere 2-3 istruzioni catch che catturano diversi tipi di eccezioni, ad esempio i lanci di file relativi a File o dalle mie classi o da qualche altra classe di terze parti ..? Il primo è un po 'scontento per gli occhi ed è un codice di gonfiore così tanto ..

È questa pratica comune solo e solo circondare quel codice nel blocco try che può generare un'eccezione o va bene anche taggare lungo il codice circostante all'interno provate a dire come viene utilizzato l'handle del file ecc.

Eventuali puntatori ..?

+2

si sta andando fuori strada.Prima prova a sapere quali sono le eccezioni e il loro tipo e cosa è provare, prendere e lanciare. Quindi sarai chiaro. –

+2

Il mio consiglio: cancella la frase "blocco try-catch" dal tuo cervello. Pensa invece di "blocchi try-finally". Eccezioni di cattura dove puoi recuperare, o dove vuoi registrarli e andare avanti ... questo di solito è ad un livello molto alto nel tuo programma. – erickson

+0

prima controlla la mia risposta qui: http://stackoverflow.com/questions/7129979/java-exception-handling/7130076#7130076 e poi http://download.oracle.com/javase/tutorial/essential/exceptions/index .html potrebbe essere il miglior tutorial per te. –

risposta

2

"E 'buona norma includere 3-4 dichiarazioni in un'eccezione blocco try e catch o ..."

Credo che bisogna essere chiari su Eccezioni prima.

try { 
    ...some code that throws exceptions 
} catch (Exception ex){ 
    ex.printStacktrace(); 
} 

Quanto sopra è frammento di movimentazione un'eccezione. Nella gestione delle eccezioni, manteniamo il codice che potrebbe generare un'eccezione nel blocco try{} e, se lo statemnet nel blocco try genera un'eccezione, verrà catturato dal blocco catch{}.

Se includere o meno 3-4 istruzioni nel blocco try e rilevare l'eccezione. .. non è determinato da REGOLE. Dipende dalla tua logica e dai requisiti del programma.


Il seguente link vi aiuta a cancellare Funda sulle eccezioni Java: http://marakana.com/bookshelf/java_fundamentals_tutorial/exceptions.html

Per migliori pratiche sulle eccezioni Java, segua seguire articoli e QA.

Best practices for exception management in Java or C#

http://www.wikijava.org/wiki/10_best_practices_with_Exceptions

+0

Vorrei anche raccomandare questo tutorial per capire il meglio pratiche di utilizzo di eccezioni in java: [Utilizzare eccezioni efficacemente in java] (http://programmergate.com/use-exceptions-effectively/) –

0

non vorrei contare le righe.

un blocco catch try ha esito positivo come blocco di codice o non riesce come blocco di codice (in generale). Quindi puoi considerare una 'unità di lavoro' da includere in un blocco try/catch. Questa è la stessa definizione di base di un metodo. Quindi i due spesso possono andare insieme.

Mettere un blocco try/catch in un metodo.

A L'errore del principiante (credo) è di creare tonnellate di blocchi di prova individuali, quasi al punto di uno per riga. Di solito ne vuoi uno grande, che comprenda l'unità di lavoro che stai cercando di eseguire.

1

Guarda questo percorso dal tutorial di Java: http://download.oracle.com/javase/tutorial/essential/exceptions/index.html (Si noti che questo è per Java 7).

Le migliori pratiche di gestione delle eccezioni non possono essere espresse in termini di proporzioni del codice. Prima apprendi l'importante differenza tra errori, eccezioni ed eccezioni di runtime. Gli errori e le eccezioni sono due rami separati della gerarchia Throwable. Le eccezioni del runtime sono tipi di eccezioni speciali che non richiedono la dichiarazione poiché non dovrebbero essere gestite dal codice ordinario. Una volta compreso ciò che ognuno fa, sei già in cammino.

Ricordare che la gestione delle eccezioni non è solo delle best practice e del buon senso, ma è anche influenzata in una certa misura dallo stile e dall'opinione. Alcune persone amano catturare le eccezioni in anticipo, portando a molti blocchi try-catch nel codice. Altri amano circondare un numero maggiore di linee con una prova.

Se si è liberi di utilizzare JDK 7 anziché una versione precedente di Java, indagare sul costrutto try-with-resources e sul meccanismo multi-catch, che contribuiranno entrambi a rendere più elegante la gestione delle eccezioni e ridurre codice gonfiato.