我正在编写一个 Node.js 应用程序,在其代码块之一内可能会引发各种异常(由我调用的第三方代码)。现在我想对这些异常使用react,因此我这样做:
try {
// Call 3rd party code
} catch (e) {
// Handle e
}
基本上,这工作正常,但是......我如何区分不同的异常?
不幸的是,它们都有 Error
作为构造函数,因此这不是可行的方法。我可以使用 message
属性,但当然这不是最好的方法(因为我依赖于消息永远不会改变的事实,这 - 恕我直言 - 比构造函数更改的可能性更大)。
有什么想法吗?
PS:具体来说 - 我需要在尝试执行 tls.connect
时对 SSL 错误使用react。如何检测这是 SSL 错误?
最佳答案
大多数包含在 javascript 错误对象中的系统级错误都会有一个 code
属性和 errno
您可以进行比较。该列表定义为 in uv.h in the node.js source code 。这可能是您的第二选择,首选是
- 尽可能的实例
代码
或errno
消息
但事实是有时您只需查看消息
。鉴于 JavaScript 的动态和松散类型以及异常通常在 Node.js 中不起重要作用的事实,在某些情况下,检查消息是您能做的最好的事情。
关于javascript - 如何检查 JavaScript 中的特定异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14341923/