у меня есть подозрение, что я использую finally
блок неправильно, и что я не понимаю основы своей цели ...Javascript обработка с попыткой ошибка .. поймать .. наконец
function myFunc() {
try {
if (true) {
throw "An error";
}
} catch (e) {
alert (e);
return false;
} finally {
return true;
}
}
Эта функция будет запускать блок catch
, предупредить «Ошибка», но затем вернуть true. Почему он не возвращает ложь?
Использование единственного возвращаемого значения - одна действительная и полезная стратегия для решения проблемы упрощения намерения и ясности функций. Использование переменной для хранения возвращаемого значения также является допустимым средством для решения сложной логики возвращаемого значения. Тем не менее, я не думаю, что можно сказать, что несколько операторов возврата в функции автоматически являются признаками плохой практики программирования. Во многих случаях это просто прекрасно: проще в написании кода и ясности в передаче намерения функции следующему программисту, который должен это понимать. `function a (i) {if (i === undefined) {return;} ...}` – ErikE 2011-04-04 19:42:44