gpt4 book ai didi

node.js - 超时时从 Node.js 获取堆栈回溯?

转载 作者:太空宇宙 更新时间:2023-11-03 22:15:14 24 4
gpt4 key购买 nike

我正在使用带有域和cluster的node.js捕获意外异常(程序员错误),然后正常重新启动。然而,我们偶尔会遇到程序员未能添加最后的 .catch().finally() 的情况。以确保他们的代码确实返回。

我可以轻松添加一个超时,在预先指定的时间后抛出异常,以确保这些错误请求不会永远存在。但我想做的是让超时从域中提取信息来解释请求中发生的情况,以便我们可以拥有一个日志/通知/任何以良好指示程序员错误所在位置开头的内容.

有什么合理的方法可以做到这一点吗?

如果重要的话,我们使用 express作为一个框架,express-domain-middleware获取域/重启逻辑,并 promise 异步逻辑。

最佳答案

您实际上并不需要域。如果您使用 Promise 库(例如 bluebird、when 甚至 Q)或最新版本的 Node(即 io.js),您不必记住在所有链上使用 .catch并使用专用事件:

 process.on("unhandledRejection", function(e, reason){
// promise was rejected, even if no `catch` or `finally` attached
// restart the process
});

请注意,域已被弃用,并且可能会在 NodeJS 的 future 版本中被删除,如果您使用的 Promise 已经具有 catch 安全性,那么就是这样。

关于node.js - 超时时从 Node.js 获取堆栈回溯?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31123917/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com