I blocchi di cattura devono essere utilizzati per scrivere la logica, ad esempio gestire il controllo del flusso ecc.? O solo per lanciare eccezioni? Ha effetto sull'efficienza o sulla manutenibilità del codice?
Quali sono gli effetti collaterali (se ce ne sono) della logica di scrittura nel blocco catch?
Modifica
Ho visto una classe Java SDK in cui hanno scritto la logica all'interno del blocco catch. Ad esempio (snippet tratto dalla classe java.lang.Integer
):
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 passando per un tutorial dove lo considerano un vantaggio della logica di scrittura di casi eccezionali all'interno delle eccezioni:
Exceptions enable you to write the main flow of your code and to deal with the exceptional cases elsewhere.
Qualche indicazione specifica su quando scrivere la logica nel blocco catch e quando no?