Изолируйте блоки try/catch

try-catchБлоки try/catch выглядят весьма уродливо. Они запутывают структуру кода и смешивают обработку ошибок с нормальной обработкой. По этой причине тела блоков try и catch рекомендуется выделять в отдельные функции.

public void delete(Page page) { 
 try {
 deletePageAndAl1 References(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.getMes sage());
}

В этом примере функция delete специализируется на обработке ошибок. В этой функции легко разобраться, а потом забыть о ней. Функция deletePageAndAllReferences специализируется на процессе полного удаления страницы. Читая ее, можно не обращать внимания на обработку ошибок. Таким образом, код нормального выполнения отделяется от кода обработки ошибок, а это упрощает его понимание и модификацию.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *