I blocchi catch dovrebbero essere usati per scrivere la logica, ad esempio gestire il controllo del flusso, ecc.? O semplicemente per generare eccezioni? Influisce sull'efficienza o sulla manutenibilità del codice?
Quali sono gli effetti collaterali (se ce ne sono) della scrittura della logica nel blocco catch?
MODIFICARE:
Ho visto una classe SDK Java in cui hanno scritto la logica all'interno del blocco catch. Ad esempio (frammento preso dalla java.lang.Integer
classe):
try {
result = Integer.valueOf(nm.substring(index), radix);
result = negative ? new Integer(-result.intValue()) : result;
} catch (NumberFormatException e) {
String constant = negative ? new String("-" + nm.substring(index))
: nm.substring(index);
result = Integer.valueOf(constant, radix);
}
EDIT2 :
Stavo attraversando un tutorial in cui lo considerano un vantaggio di scrivere la logica di casi eccezionali all'interno delle eccezioni:
Le eccezioni ti consentono di scrivere il flusso principale del tuo codice e di trattare casi eccezionali altrove.
Qualche guida specifica su quando scrivere la logica nel blocco catch e quando non farlo?