【问题标题】:Why is using try / catch a bad idea in this scenario?为什么在这种情况下使用 try / catch 是个坏主意?
【发布时间】:2013-05-20 17:05:18
【问题描述】:

我一直致力于将 mongoDB 连接到 node.js 服务器。我已经把代码都整齐地收起来了,但是连接大约需要 5~ 秒,如果在此之前有插入或查询的请求,服务器就会崩溃。

我的第一反应是使用 try/catch 过滤掉任何出错的请求。无论单个请求中断什么错误,我都希望服务器继续运行,那么为什么不使用它呢?

我到处都在吹捧它是个坏主意,我不确定我明白为什么。

【问题讨论】:

    标签: node.js error-handling try-catch


    【解决方案1】:

    一个简单地忽略错误的 try/catch 块通常被认为是不好的做法。但是,如果这是您想要的行为,那么它没有任何问题。只需考虑它实际上可能不是最好的行为。您可能至少想要记录发生异常的事实。

    现在,由于 Node.js 的异步特性,try/catch 块有时没用。我不知道您使用的是 MongoDB API 的哪个部分,但如果有回调,您将需要检查 err 参数,在大多数情况下,它应该是回调函数的第一个参数。

    最后,对于我的所有应用程序,我同步连接到任何必要的数据库,然后开始监听端口。但是,这仅在持久连接对您的项目有意义的情况下才有意义。此外,您仍然需要注意错误,因为确实发生了连接故障。

    【讨论】:

    • 如何强制与 mongoDB 的连接同步?我认为这会解决我的问题
    • @dsp_099,您使用的是什么客户端库?
    • 我使用的是 mongodb 1.3.6 和 redis 0.8.3
    • @dsp_099,您使用的是什么客户端库?这与服务器无关。有很多方法可以连接到 Mongo。
    • 我从 package.json 中提取了这些。我认为实际的库是 node-mongodb-native 和 node_redis?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-15
    • 2020-04-04
    • 2017-03-28
    • 2016-08-26
    • 1970-01-01
    • 2017-05-01
    • 2014-10-27
    相关资源
    最近更新 更多