You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

全局uncaughtException处理器未生效的问题求助

全局uncaughtException处理器未生效的问题求助

我正在开发一个 Express + PostgreSQL 应用,想要实现一套全局错误处理系统,目前需要捕获项目里所有未被捕获的异常。服务器是用 nodemon 运行的。

比如像 console.log(x) 这种代码(x未定义),应该触发我自定义的错误处理逻辑,但目前没达到预期效果。

我把 process.on('uncaughtException', () => {}) 放在了根目录的 server.js 文件中,然后在同目录的 app.js 里写了 console.log(x) 来测试异常捕获。

以下是我的 server.js 代码:

import './src/config/dotenv.js';
import app from './app.js';

process.on('uncaughtException', (err) => {
  console.log(err.name, err.message);
  console.log('UNCAUGHT EXCEPTION! 💥 Shutting down...');
  process.exit(1);
});

const port = 3000;

const server = app.listen(port, () => {
  console.log(`Server running on port ${port}...`);
});

process.on('unhandledRejection', (err) => {
  console.log(err.name, err.message);
  console.log('UNHANDLED REJECTION! 💥 Shutting down...');
  server.close(() => {
    process.exit(1);
  });
});

我已经尝试过这些方法,但都没解决问题:

  • 把 uncaughtException 处理器放在最顶部,所有导入语句之前,但无效;
  • 排查过 nodemon,确认问题不在它身上;
  • 其他文件里没有定义其他的 uncaughtException 处理器;
  • 明确 console.log(x) 是同步代码里的错误,我知道这个处理器只负责捕获同步代码的异常;

备注:内容来源于stack exchange,提问作者Corneliu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 20:23:00