Чи слід використовувати блоки лову для написання логіки, тобто керування рухом потоку тощо? Або просто за викидання винятків? Чи впливає це на ефективність чи ремонтопридатність коду?
Які побічні ефекти (якщо такі є) логіки написання в блоці лову?
Редагувати:
Я бачив клас Java SDK, в якому вони записали логіку всередині блоку лову. Наприклад (фрагмент, взятий з 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 :
Я переглядав підручник, де вони вважають перевагою написання логіки виняткових випадків всередині винятків:
Винятки дають змогу писати основний потік коду та мати справу з винятковими випадками в інших місцях.
Будь-які конкретні вказівки, коли писати логіку в блок лову, а коли не робити?