【问题标题】:Uncatchable exception NodeJS无法捕获的异常 NodeJS
【发布时间】:2011-12-12 02:34:11
【问题描述】:

我有一个写入数据存储的应用程序,因此我尝试将 HTTP 请求发送到数据存储(hbase + stargate)。 ETIMEDOUT 异常,杀死进程。

我在每个存在或至少看似存在的套接字连接上都有 .on('error') ,包括请求和响应。我什至采取了一个极端的步骤,对源代码进行了更改,这应该是“忽略”第三篇文章中的那些错误:

http://comments.gmane.org/gmane.comp.lang.javascript.nodejs/25283

我什至有一个

process.on('uncaughtException', function(){})

所有这些仍然无济于事,我的进程不断死亡。可能会丢失 ZMQ 流队列中建立的所有内容。

最奇怪的部分是 4 个服务器集群中的一个服务器运行良好。

【问题讨论】:

  • 它发生在某个地方,回溯根本没有帮助。我只是针对我在代码中看到的所有请求/响应/套接字处理程序上的错误事件,希望能在某处捕获它。
  • 你试过node 0.6吗? 0.6 版的 HTTP 客户端代码已被大幅重写。
  • 建议升级到最新节点,因为之前的版本存在稳定性问题。你最好还是抓住uncaughtException,在这种情况下重新启动你的HTTP流

标签: node.js hbase stargate


【解决方案1】:

我对依赖 HTTP 请求的数据存储有类似的问题。

您如何发送“HTTP 请求”?有图书馆吗?您是否尝试过对 HTTP 请求设置超时限制以避免 ETIMEDOUT 异常?虽然这不能解决主要问题,但它可以让您通过抛出自己的受控异常来捕获超时。

【讨论】:

    猜你喜欢
    • 2010-10-29
    • 1970-01-01
    • 2011-04-19
    • 2021-10-09
    • 2021-09-17
    • 2021-10-03
    • 2018-02-04
    • 2018-02-04
    相关资源
    最近更新 更多