0

之前用throw new ReferenceError的不多,用的时候发现会停止脚本:

alert("a");  //Yes
throw new ReferenceError("Error.");  //Yes
alert("b");  //Nope

http://jsfiddle.net/DerekL/uKEZ4/

我只想在控制台中抛出一个错误而不停止整个脚本。我试图这样做:

alert("a");  //Yes
try{
    throw new ReferenceError("Error.");  //Yes
}catch(e){}
alert("b");  //Yes

http://jsfiddle.net/DerekL/uKEZ4/1/

这会起作用,但我认为这不是最好的方法。在不停止脚本的情况下显示错误消息的最佳方法是什么?

PS:

console.warn("Error");

不能在 IE 上运行。​</p>

4

2 回答 2

3

此行为是设计使然。JavaScript 中的异常处理就像在许多其他语言中一样工作:C#、Java、Ruby 等。

当抛出异常时,它将展开堆栈并跳过代码的执行,直到它被 a 捕获catch(它将“恢复”执行)。如果没有catch,那么它只是完全跳过代码的末尾(脚本元素、源文件、REPL 等)。finally在情况下也是一个选项(“恢复”执行),但没有什么像On Error Resume Next; 那不是JavaScript。

没有什么可以改变这种行为。(我建议只填充 IE以支持console.)

于 2012-05-28T00:37:23.887 回答
0

Error只是一个简单的Object.whataever 你throw,他们总是打破执行流程。

于 2012-05-28T00:37:17.283 回答