如何中止或停止 JavaScript 执行?
How to abort or stop JavaScript execution?
我在一个例子中工作,在某个时候(当特定事情发生时)停止执行 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
文本区域中显示消息错误)。所以我不希望 #output
文本区域具有以下值:
This " is my first program
My name is XXX
但我希望它在错误检测后为空。
我曾尝试使用 return;
和 throw new Error('You have an error');
,但它们都不起作用。你能帮帮我吗?提前致谢。
首先,请允许我对您fiddle中的代码做一些评论:
- if inside a while in if inside if inside an if inside an if in a function, ... 那是读起来很糟糕的代码和等待发生的错误。请重构该代码(使用早期 returns,将其划分为函数,...)。我的经验法则永远不会嵌套超过 2 层深。好的书面代码应该记录自己,我真的不能说你的代码是不言自明的。
- 你为什么要插入那个脚本块?我认为完全没有必要。它几乎和使用 eval() 一样糟糕...
- 尝试使用合理的变量名。
s
在您编写代码的那一刻可能看起来很清楚,但我向您保证,在您必须去寻找错误的六个月后,它不会。
请注意,我只是想在这里帮助您,而不是想破坏您。
至于你的问题,你为什么不在某处保留一个错误布尔值。默认为 false 并在发生错误时将其设置为 true。在输出结果之前,只需检查该布尔值的状态。当它为真时,不要输出任何东西。在我看来,这应该是迄今为止最简单的解决方案。
var hasErrors = false;
...
// an error occurs
if (this.notRight) { hasErrors = true; }
...
if (! hasErrors) {
$('#output').html(output);
}
我在一个例子中工作,在某个时候(当特定事情发生时)停止执行 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
文本区域中显示消息错误)。所以我不希望 #output
文本区域具有以下值:
This " is my first program
My name is XXX
但我希望它在错误检测后为空。
我曾尝试使用 return;
和 throw new Error('You have an error');
,但它们都不起作用。你能帮帮我吗?提前致谢。
首先,请允许我对您fiddle中的代码做一些评论:
- if inside a while in if inside if inside an if inside an if in a function, ... 那是读起来很糟糕的代码和等待发生的错误。请重构该代码(使用早期 returns,将其划分为函数,...)。我的经验法则永远不会嵌套超过 2 层深。好的书面代码应该记录自己,我真的不能说你的代码是不言自明的。
- 你为什么要插入那个脚本块?我认为完全没有必要。它几乎和使用 eval() 一样糟糕...
- 尝试使用合理的变量名。
s
在您编写代码的那一刻可能看起来很清楚,但我向您保证,在您必须去寻找错误的六个月后,它不会。
请注意,我只是想在这里帮助您,而不是想破坏您。
至于你的问题,你为什么不在某处保留一个错误布尔值。默认为 false 并在发生错误时将其设置为 true。在输出结果之前,只需检查该布尔值的状态。当它为真时,不要输出任何东西。在我看来,这应该是迄今为止最简单的解决方案。
var hasErrors = false;
...
// an error occurs
if (this.notRight) { hasErrors = true; }
...
if (! hasErrors) {
$('#output').html(output);
}