Остановить выполнение скрипта
Собственно сам вопрос, существует ли в 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, время: 17:36. |