这两个陈述之间有什么区别,是否有充分理由使用其中一个?
throw Error("msg");
console.error("msg");
在我有限的经历中,我才真正看到throw Error()
使用过。有什么特别的原因吗?
此外,是否以相同的方式等同于console.warn()
?
答案 0 :(得分:52)
throw ...
在当前代码块中引发异常并导致它退出,或者如果在catch
块中引发则流向下一个try
语句。
console.error
只是向浏览器开发人员工具javascript控制台输出一条红色消息,不会导致执行流程发生任何变化。
答案 1 :(得分:20)
一些差异是:
抛出错误(" msg"):
<强> console.error(&#34; MSG&#34):强>
此语法有时根据供应商浏览器而有所不同,并未通过 W3C 进行标准化。
即。对于IE,语言为window.console.debug("msg")
答案 2 :(得分:1)
抛出是为了实际更改控制流(跳出当前上下文,直到错误处理程序),以编程方式处理错误。 console语句仅用于调试和打印文本到错误控制台。您可能会看到它们一起使用,例如:
var doSomethingDangerous = function(response) {
if (isMalformed(response)) {
throw Error('Response is malformed.');
}
process(response);
};
var sendAsyncRequest = function() {
var request = buildAsyncRequest();
request.sendThen(function (response) {
try {
doSomethingDangerous(response);
} catch (e) {
console.error(e);
doSomeAdditionalErrorHandling();
}
});
};