首页 > 解决方案 > 如何利用所有 console.error 消息

问题描述

我正在尝试获取console.error由专用错误处理程序捕获的所有消息(它应该在某些特定错误时触发某些操作),并且我正在尝试window.onerror为此目的利用回调。

到目前为止,即使我的基本设置,我也无法成功,比如

监听器.js

(function () {
  window.onerror = function (msg) {
    console.log("I got the error:", msg);
  };
})();

投掷者.js

(function () {
  console.error("sample error");
})();

两者都作为静态资产从<head>非常基本的部分中加载

索引.html

<!DOCTYPE html>
<html>
  <head>
    <script src="assets/listen.js"></script>
    <script src="assets/throw.js"></script>
  </head>
  <body>
    here I go
  </body>
</html>

并由琐碎的快递应用程序提供服务:

index.js

import express from "express";
import { join } from "path";

const app = express();

app.use("/assets", express.static(join(__dirname, "public")));

app.use("/", (req, res) => {
  res.sendFile(join(__dirname, "index.html"));
});

app.listen(9000, () => console.log("listen :9000"));

我期望得到带有自定义前缀 ( 'I got the error: ') 的示例错误消息,但控制台中没有额外的输出,所以我认为,示例错误从未被捕获。

所以,问题是:我到底错过了什么?

标签: javascript

解决方案


(function () {
  console.error("sample error");
})();

这不会引发任何错误,它只是将一些文本记录到控制台。

如果你想抛出一个错误 - 你应该使用throw 语句

(function () {
  throw new Error('my error');
})();

推荐阅读