我在一个例子中工作,并且在某些时候(当某些特定事件发生时)停止执行javascript代码。
这是我检测到错误的行(DEMO处的行号36):
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');
,但这些功能无效。你能帮帮我吗?提前谢谢。
答案 0 :(得分:1)
首先,请允许我对你小提琴中的代码做一些评论:
s
似乎很清楚,但我保证在六个月内你不得不去寻找一个bug。请注意,我只是想帮助你,而不是试图让你失望。
至于你的问题,为什么不在某处保留错误布尔值。将其默认为false,并在发生错误时将其设置为true。在输出结果之前,只需检查该布尔值的状态。如果是,则不输出任何内容。这应该是迄今为止最简单的解决方案。
var hasErrors = false;
...
// an error occurs
if (this.notRight) { hasErrors = true; }
...
if (! hasErrors) {
$('#output').html(output);
}