Остановить выполнение скрипта
Собственно сам вопрос, существует ли в JavaScript функция которая остановит дальнейшее выполнение скрипта, что то вроде exit в php, или как такое можно реализовать?
|
window.stop()
|
ZoNT,
На сколько я знаю, window.stop() останавливает загрузку окна, а не выполняемый скрипт. |
вполне может быть - никогда не пользовался... :)
|
throw что-нибудь;, например,
throw "stop"; Если нужна возможность продолжения, то смотреть в сторону window.alert(msg); window.confirm(msg); window.prompt(msg, defaultValue); Впрочем, «window.» можно опускать. |
Спасибо ребят, то что надо
|
подниму темку.
Сейчас потребовалось тоже остановить выполнение скрипта в определенном месте. но когда пишу throw "stop", firebug ругается "uncaught exception: stop" как бы так остановить чтоб и жук не ругался ? |
throw new Error("stop"); вот так насколько я помню правильно бросать исключения только теперь фаербаг все равно ругается) Код:
throw new Error("stop"); если обернуть исключение в блок try-catch, на что он и расчитан, то соответсвенно никакой ошибки в фаербаге не выдается ни при одном из двух вариантов try { throw "dsf"; //throw new Error("dsf"); } catch(e) { alert(e); } оберните весь глобальный скрипт в исключение, и все будет норм |
в том то и дело что try-catch у меня ловит throw с ошибками, выдает пользователю сообщение и останавливает скрипт.
Типа такого: try { // код if(Бог есть == true) throw "верующий"; } catch(e) { alert(e); throw "stop"; // скрипт дальше не должен выполняться. } а после алерта скрипт продолжит выполняться |
try{ try { // код if(Бог есть == true) throw "верующий"; } catch(e) { alert(e); throw "stop"; // скрипт дальше не должен выполняться. } //этот блок уже не выполнится }catch(e){} попробуй так. подходит? |
не получиться. ведь последний catch(e) перехватит throw "stop" и продолжиться выполнение всего скрипта.
В принципе можно забить на эту ошибку в firebug, но как то перед js-коллегами неудобно :) |
я имел в виду , что в ту конструкцмю надо обернуть весь скрипт.
то ест до первого catch И после опследнего throw Ничего более |
ааа. понял, спасибо.
add: работает |
twolf, а может твою проблему можно решить более цивилизованными методами? Зачем такая штука понадобилась?
|
Цитата:
|
Цитата:
ситуацию я пояснил. Идет выполнение скрипта, проверяются всяческие условия и если сработало назовем его - критическое условие, то скрипт должен тут же остановиться. Кроме как throw "stop" я не знаю как остановить выполнение. |
var $stop = {}; function long() { if (/* пора выходить */) { throw $stop; } } try { long(); } catch (e) { if (e != $stop) { throw e; } } |
firebug на throw e ругнется
|
Цитата:
|
у меня try находиться в long()
Но я не могу понять, как объект $stop останавливает скрипт. |
Цитата:
|
Всё. Разобрался. Просто блок с catch не туда ставил.
Всем спасибо |
Цитата:
|
Часовой пояс GMT +3, время: 21:36. |