- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
try {
/**
* Нахожу номер "начисления" в массиве "charges" По соответствию поля "adapter".
*/
_.each(currentEmployee.charges, function (charge, num) {
if (_.isEqual(charge.adapter, currentCharge.adapter)) {
throw num;
}
}, this);
} catch (num) {тут какой то код}
, не?
Тут try-catch используют как замену return, потому что кодер ниасилил организовать нормальный цикл вместо .each().
Разработчик объяснил свой выбор, сославшись на более опытного python разработчика, он даже не подумал а для чего
питонисты\node.js и тому подобные разрабы юзают эксепшены, на самом деле эксешены ловятся исключительно что бы не упал весь код, если где то вылетит ошибка то упадет весь сервер. а на клиенте использовать такой выход из цикла это пиздец, да и просто оборачивать код в try catch. для меня единственно оправданное применение try catch на клиенте это обертка всего кода, ловля исключения и отсылка в лог сообщения об ошибке, а не ради того чтоб некий код работал и иногда не падал