throw错误和console.error有什么区别

时间:2014-08-19 06:42:33

标签: javascript

这两个陈述之间有什么区别,是否有充分理由使用其中一个?

throw Error("msg");
console.error("msg");

在我有限的经历中,我才真正看到throw Error()使用过。有什么特别的原因吗?

此外,是否以相同的方式等同于console.warn()

3 个答案:

答案 0 :(得分:52)

throw ...在当前代码块中引发异常并导致它退出,或者如果在catch块中引发则流向下一个try语句。

console.error只是向浏览器开发人员工具javascript控制台输出一条红色消息,不会导致执行流程发生任何变化。

答案 1 :(得分:20)

一些差异是:

抛出错误(" msg"):

  1. 停止执行js。
  2. 主要用于代码处理目的。
  3. 可以改变主要的执行流程。
  4. 此语法对于所有浏览器大致相同,因为 W3C 指定并验证了此语法。
  5. <强> console.error(&#34; MSG&#34):

    1. 它只显示浏览器控制台的红色输出
    2. 它主要用于打印值以进行调试。
    3. 不能伤害主要的执行流程。
    4. 此语法有时根据供应商浏览器而有所不同,并未通过 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();
     }
  });
};
相关问题