2015-05-05 117 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

(所以如果发生错误我只想有个电子邮件错误#errors textarea)。所以,我不想让#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

首先,请允许我对代码的一些言论在你的提琴:

  • 的,如果一段时间内内的,如果内部的,如果内部的,如果一个函数内部。这只是可怕的代码读取和错误等待发生。请重构该代码(使用早期的回报,将其划分为函数,...)。我的经验法则绝不会超过2层深。良好的书面代码应该记录自己,我不能说实话你的代码是自我解释的。
  • 你为什么插入该脚本集团?我根本看不到这一点。这几乎和使用eval()一样糟糕...
  • 尝试使用明智的变量名称。 s在你写代码的时候看起来很清楚,但我向你保证在六个月内你不得不去寻找一个bug。

请注意,我只是想在这里帮助你,而不是试图让你失望。

至于你的问题,为什么你不只在某处保存一个错误布尔值。默认为false,发生错误时将其设置为true。在输出结果之前,只需检查该布尔值的状态。如果属实,请不要输出任何内容。这应该是迄今为止最简单的解决方案。

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

感谢您的想法。事实上,我知道我的代码非常混乱:(当然,我明白你正在试图帮助我...我现在会尝试组织它。 – orsina