如何判断Javascript错误是否为';阻塞';?

如何判断Javascript错误是否为';阻塞';?,javascript,jquery,Javascript,Jquery,是否存在阻塞与非阻塞Javascript错误 我的意思是,我已经看到我的站点报告了一些错误,但所涉及的过程仍然成功完成(据我所知)。这些错误包括: TypeError:undefined不是对象(计算'e.nodeName.toLowerCase') 类型错误:e.nodeName未定义 (这些始终来自我的常规JQuery库文件) 这些就是我所说的“非阻塞”错误,因为所涉及的脚本似乎已成功完成 如果有“阻塞v非阻塞”这样一个词,那么它的正确术语是什么?我如何区分这两个词之间的区别(例如,我可以优

是否存在阻塞与非阻塞Javascript错误

我的意思是,我已经看到我的站点报告了一些错误,但所涉及的过程仍然成功完成(据我所知)。这些错误包括: TypeError:undefined不是对象(计算'e.nodeName.toLowerCase') 类型错误:e.nodeName未定义 (这些始终来自我的常规JQuery库文件)

这些就是我所说的“非阻塞”错误,因为所涉及的脚本似乎已成功完成

如果有“阻塞v非阻塞”这样一个词,那么它的正确术语是什么?我如何区分这两个词之间的区别(例如,我可以优先调查阻塞错误)

谢谢

无论何时

throw Error;
异常会阻塞函数堆栈。如果到达它的末尾,它将抛出一个未捕获的(=意外)异常。这会停止整个程序,因为它不可能再正常工作

但是,它可以被捕获(=预期异常):

因此代码继续进行(省略了“成功后继续”部分)。但是,如果您使用console.error,它会记录看起来像错误的内容

资源:


请注意,错误只是js中的一个对象构造函数:

new Error("test");
当throw抛出异常时…

无论何时

throw Error;
异常会阻塞函数堆栈。如果到达它的末尾,它将抛出一个未捕获的(=意外)异常。这会停止整个程序,因为它不可能再正常工作

但是,它可以被捕获(=预期异常):

因此代码继续进行(省略了“成功后继续”部分)。但是,如果您使用console.error,它会记录看起来像错误的内容

资源:


请注意,错误只是js中的一个对象构造函数:

new Error("test");

当throw抛出异常时…

否。所有未捕获的错误都被阻塞,它们将结束整个调用堆栈的执行。但是,在各种操作之后发生的错误不会恢复到以前的情况。例如,进行AJAX调用,然后出现未定义的错误不会取消调用。演示:

(函数(){
“严格使用”;
设a=5;
console.log(a);//5
setTimeout(函数(){
console.log(a);//10
//将执行,因为它是新堆栈
//变量a是10,而不是12,因为它发生在
}, 250);
常量2=函数(){
a=10;
a、 x.z=2;//错误
a=12;//从不执行,因为它发生在错误之后
}
威瑟罗2();
console.log(a);//从不执行,因为它发生在错误之后

}());否。所有未捕获的错误都被阻塞,它们将结束整个调用堆栈的执行。但是,在各种操作之后发生的错误不会恢复到以前的情况。例如,进行AJAX调用,然后出现未定义的错误不会取消调用。演示:

(函数(){
“严格使用”;
设a=5;
console.log(a);//5
setTimeout(函数(){
console.log(a);//10
//将执行,因为它是新堆栈
//变量a是10,而不是12,因为它发生在
}, 250);
常量2=函数(){
a=10;
a、 x.z=2;//错误
a=12;//从不执行,因为它发生在错误之后
}
威瑟罗2();
console.log(a);//从不执行,因为它发生在错误之后

}());捕获与未捕获所有JavaScript错误都是致命的,但它们可以被捕获。但是,如果在错误行之前发生可见的效果,它们仍然会生效-当发生错误时,不会回滚任何内容。这可能会导致某些事情看起来有效,至少部分有效。捕获的与未捕获的所有JavaScript错误都是致命的,但它们可以被忽略。但是,如果在错误行之前出现可见的效果,它们仍然有效-发生错误时不会回滚任何内容。这可能会导致某些事情看起来有效,至少部分有效。