Il catch
cattura l'eccezione (e qualsiasi altra ciò accade). Detto questo, cerco di evitare di scrivere codice come questo, quando possibile.
Personalmente, vedo poche ragioni per avere una gestione delle eccezioni (catch) per un'eccezione generata nello stesso ambito. Se riesci a gestire il tuo errore nel tuo metodo, metti anche la gestione delle eccezioni (cioè: logging) direttamente nel blocco try.
L'utilizzo di catch
è più utile, IMO, per rilevare eccezioni generate da metodi all'interno del blocco try
. Ciò sarebbe più utile, ad esempio, se la tua sezione // do stuff
abbia chiamato un metodo che ha generato un'eccezione.
Inoltre, si consiglia di non rilevare tutte le eccezioni (Exception e
), ma piuttosto i tipi specifici di eccezioni che è possibile gestire correttamente. L'unica eccezione potrebbe essere se si sta rilanciando l'eccezione all'interno del proprio catch, ad es .: usandolo per scopi di logging ma continuando a farlo esplodere nello stack delle chiamate.
fonte
2010-07-20 19:37:24
Qualsiasi cosa tu voglia fare nella cattura puoi fare nel resto che solleva l'eccezione. Dovresti sollevare eccezioni solo in circostanze eccezionali. Per inciso, non dovresti abituarti a chiamare gli oggetti di eccezione 'e'. Questo si scontrerà con il parametro 'EventArgs' nei gestori di eventi. –
@Philip: "Tutto ciò che vorresti fare nella cattura lo puoi fare nel resto che solleva l'eccezione." - Questo era il mio punto :) Per quanto riguarda gli altri argomenti, sono d'accordo su un punto, ma personalmente non ho alcun problema con la denominazione di oggetti di eccezione e (anche se di solito uso un nome più significativo), poiché sono usati raramente con EventArgs direttamente . –
Perché i downvotes? Solo curioso;) –