2015-05-05 3 views
-1

Я работаю в одном примере и в какой-то момент (когда что-то происходит), чтобы остановить выполнение javascript-кода.Как прервать или остановить выполнение JavaScript?

Вот это строка, где я обнаружить ошибки (строки номер 36 на DEMO):

if(error_print === null){ 
       s += "errors+='"+"You have error in row :" + (i+1) + "';"; 
       //here I want to stop the code execution 

      } else{ //continue...} 

Так что я хочу:

1- остановить выполнение кода, когда эта ошибка обнаружена

2- для очистки #output textarea от сообщений, печати, прежде чем

(так что, если произошла ошибка, я хочу только, чтобы ю e в текстовом поле #errors). Так что я не хочу #output текстовую область, чтобы эти значения:

This " is my first program 
My name is XXX 

, но я хочу, чтобы это было пустым после обнаружения ошибок.

Я попытался использовать return; и throw new Error('You have an error');, но они не функционируют. Не могли ли вы помочь мне, пожалуйста? Заранее спасибо.

Here is the demo you can play with.

+0

выбросить исключение и поймать во внешнем блоке try/catch – BeNdErR

+0

@cory на самом деле я не знаком с этой концепцией. Не могли бы вы мне помочь? Предложить что-то, где начать читать, поможет мне. Спасибо – orsina

+0

Я сомневаюсь, что вы действительно хотите прекратить выполнение кода, поскольку это предотвратит возможный шаг 2. –

ответ

1

Во-первых, позвольте мне сделать несколько замечаний по поводу кода в скрипкой:

  • если внутри некоторое время внутри, если внутри если внутри, если внутри функции,. Это просто ужасный код для чтения и ошибки, ожидающие его появления. Пожалуйста, реорганизуйте этот код (работайте с ранними результатами, разделите его на функции, ...). Мое эмпирическое правило никогда не гнездится более двух уровней. Хороший письменный код должен сам документировать, и я не могу сказать, что ваш код сам объясняет.
  • Почему вы вставляете этот блок сценариев? Я не вижу в этом необходимости. Это почти так же плохо, как использование eval() ...
  • попытайтесь использовать имена разумных переменных. s может показаться ясным в тот момент, когда вы пишете код, но я обещаю вам, что через шесть месяцев вам не придется идти и выискивать ошибку.

Обратите внимание, что я просто пытаюсь помочь вам здесь, не пытаясь сломать вас.

Что касается вашего вопроса, почему бы вам не оставить где-нибудь ошибку? По умолчанию это значение false и установите значение true в случае возникновения ошибки. Прежде чем вывести свой результат, просто s-проверьте состояние этого булева. Когда это правда, ничего не выводите. Это должно быть самым простым решением imo.

var hasErrors = false; 
... 
// an error occurs 
if (this.notRight) { hasErrors = true; } 
... 
if (! hasErrors) { 
    $('#output').html(output); 
} 
+0

спасибо за вашу идею. На самом деле я знаю, что мой код действительно грязный: (и, конечно же, я понимаю, что вы пытаетесь мне помочь ... Я постараюсь организовать его сейчас. – orsina

Смежные вопросы