Ho letto nel libro "Clean Code" di Robert C. Martin (a pagina 71) che il modo migliore per gestire il blocco try / catch è separare il processo (la parte "try") dalla gestione degli errori (il " prendere parte "). Ogni parte dovrebbe avere una funzione dedicata
Esempio del libro, che illustra un modo migliore per gestire try / catch:
public void delete(Page page) {
try {
deletePageAndAllReferences(page);
}
catch (Exception e) {
logError(e);
}
}
private void deletePageAndAllReferences(Page page) throws Exception {
deletePage(page);
registry.deleteReference(page.name);
configKeys.deleteKey(page.name.makeKey());
}
private void logError(Exception e) {
logger.log(e.getMessage());
}
Sono totalmente d'accordo con questo consiglio. Tuttavia, mi chiedo il nome della funzione "cancella". IMHO, questo nome non è abbastanza esplicito su cosa sta facendo la funzione (che cosa sta eliminando?). Inoltre, penso che nasconda anche il fatto che qualsiasi eccezione sollevata sarà catturata all'interno di questa funzione e penso che aggiungere un prefisso al nome della funzione lo chiarirà.
Ma mi sto anche chiedendo di dare troppe informazioni che potrebbero aggiungere complessità inutile e una minore leggibilità. Quindi non so se rinominarlo "tryDeletePageAndAllReferences" sarà un nome migliore o meno.
E, in un contesto più generale, è meglio porre un prefisso a quel tipo di funzione (intendo solo con try catch blocks) con "try"?
Grazie per il tuo consiglio e anche il tuo feedback.