Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Остановить выполнение скрипта (https://javascript.ru/forum/misc/1601-ostanovit-vypolnenie-skripta.html)

twolf 01.05.2009 18:55

не получиться. ведь последний catch(e) перехватит throw "stop" и продолжиться выполнение всего скрипта.

В принципе можно забить на эту ошибку в firebug, но как то перед js-коллегами неудобно :)

Gvozd 01.05.2009 18:58

я имел в виду , что в ту конструкцмю надо обернуть весь скрипт.
то ест до первого catch И после опследнего throw Ничего более

twolf 01.05.2009 19:01

ааа. понял, спасибо.

add: работает

x-yuri 01.05.2009 21:42

twolf, а может твою проблему можно решить более цивилизованными методами? Зачем такая штука понадобилась?

Riim 02.05.2009 00:13

Цитата:

Сообщение от Gvozd
я имел в виду , что в ту конструкцмю надо обернуть весь скрипт.

Если есть возможность обернуть весь скрипт, то зачем вообще исключения бросать. Разве обычный if не подойдет?

twolf 02.05.2009 12:00

Цитата:

Сообщение от x-yuri (Сообщение 18015)
twolf, а может твою проблему можно решить более цивилизованными методами? Зачем такая штука понадобилась?

ну а как?
ситуацию я пояснил. Идет выполнение скрипта, проверяются всяческие условия и если сработало назовем его - критическое условие, то скрипт должен тут же остановиться.
Кроме как throw "stop" я не знаю как остановить выполнение.

Kolyaj 02.05.2009 12:17

var $stop = {};
function long() {
    if (/* пора выходить */) {
        throw $stop;
    }
}

try {
    long();
} catch (e) {
    if (e != $stop) {
        throw e;
    }
}

twolf 02.05.2009 12:23

firebug на throw e ругнется

Kolyaj 02.05.2009 12:28

Цитата:

Сообщение от twolf
firebug на throw e ругнется

А он и должен, это же настоящая ошибка будет, а не выход из функции.

twolf 02.05.2009 16:19

у меня try находиться в long()
Но я не могу понять, как объект $stop останавливает скрипт.


Часовой пояс GMT +3, время: 03:37.