如何在JavaScript中检查特定的exception?
我正在编写一个Node.js应用程序,并且在其代码块之内可能会引发各种exception(通过我称之为第三方代码)。 现在我想对这些例外做出反应,因此我这样做:
try { // Call 3rd party code } catch (e) { // Handle e }
基本上,这工作正常,但…我如何区别不同的例外?
不幸的是,他们都有构造函数的Error
,所以这是不可行的。 我可以使用message
属性,但当然这不是最好的方式(因为我依赖于事实的消息将永远不会改变,这是 – 恕我直言,更可能比构造函数的变化)。
有任何想法吗?
PS:具体地说 – 我需要在尝试执行tls.connect
时对SSL错误做出反应。 如何检测到SSL错误?
大多数包含在javascript错误对象中的系统级错误的错误都会有一个code
属性,您可以比较一下errno
。 该列表在uv.h中的node.js源代码中定义。 这可能是你的第二select,首选
- 如果可能的话
-
code
或errno
-
message
但事实是,有时你只需要看message
。 鉴于javascript的dynamic和松散的input,以及一般的exception在node.js中不起重要作用的事实,将会有检查邮件是最好的你可以做的事情。
我不build议在Node中使用try / catch结构,因为我不认为它会工作,因为Node的asynchronous性质(除非你使用基本的同步代码)。
假设你正在使用asynchronous函数/包,你可能会有更多的运气检查callback函数中的错误状态。