Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
if'ов или бросать миллионы исключений в секунду.
try-catch вместо if — это плохо не только потому, что ухудшает читабельность кода, а ещё и потому, что это просто медленнее.
Дорогой является именно процедура возбуждения исключения, включающая в себя системный вызов
// Это баг или метод специально был помещен сюда без try/catch блока?
ValidateName(name);
Проблема документации в поддержании актуальности документов и синхронизации
Исключения нужно использовать тогда и только тогда, когда возникает развитие событий, не предусмотренное нормальным ходом работы
function transferMoney(value, fromWalet, toWalet) {
lock(fromWalet); // throws CantAquireLockException after timeout
try {
if (!fromWalet.hasFunds(value)) {
throw new InsufficientFundsException(fromWalet, value);
}
try {
SomeTransactionalSystem.begin();
fromWalet.addFunds(-value);
toWalet.addFunds(value);
SomeTransactionalSystem.commit();
} catch (Exception e) {
SomeTransactionalSystem.rollback();
throw e;
}
} catch (Exception e) {
unlock(fromWalet);
throw e;
}
unlock(fromWalet);
}
или возвращать класс, содержащий информацию об ошибке?
Как правильно использовать исключения