throw Error和console.error的区别是什么?

What is the difference between throw Error and console.error

本文关键字:区别 是什么 error Error console throw      更新时间:2023-09-26

这两个语句之间的区别是什么,是否有很好的理由使用其中一个而不是另一个?

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

在我有限的经验中,我只真正见过使用throw Error()。有什么特别的原因吗?

同样,是否存在与console.warn()相同的方式?

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

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

差异如下:

抛出错误("味精"):

  1. 停止js的执行。
  2. 主要用于代码处理。
  3. 可以改变主执行流程。
  4. 该语法在所有浏览器中基本相同,因为它是由W3C指定和验证的。

console.error("味精"):

  1. 它只是在浏览器控制台显示红色输出
  2. 主要用于打印调试用的值。
  3. 不能损害主流程的执行。
  4. 此语法有时因供应商浏览器而异,并且未被W3C标准化。

    。IE接受的语法是window.console.debug("msg")

Throw用于实际更改控制流(跳出当前上下文并跳转到错误处理程序),以便以编程方式处理错误。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();
     }
  });
};