为什么在这种情况下使用try / catch是个坏主意?

时间:2013-05-25 03:29:14

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

我一直在努力将mongoDB连接到node.js服务器。我已经把代码整齐地放好了,但连接大约需要5秒钟,如果在此之前发出插入或查询请求,服务器将崩溃。

我的第一直觉是使用try / catch来过滤掉任何错误的请求。我希望服务器能够继续运行,无论单个请求中断了什么错误,为什么不使用它呢?

到处都是我认为它被吹捧为一个坏主意,我不确定我理解为什么。

1 个答案:

答案 0 :(得分:3)

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

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

最后,对于我的所有应用程序,我同步连接到任何必要的数据库,然后开始侦听端口。但是,只有持久连接对您的项目有意义时,这才有意义。此外,您仍然需要注意错误,这可能会在连接失败时发生。