如何在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函数中的错误状态。
- 是否有可能修改错误的构造函数,以便它包含错误被引发的上下文?
- JavaScript:Try / Catch vs错误函数作为parameter passing
- 我应该把自定义错误放在sails.js中?
- nodejs socket.io不可捕捉的错误
- 使用Cloudant Lite服务在Bluemix上的Node.js Web应用程序中收到500个查询错误
- 从节点连接中抛出错误并将其捕获到服务器error handling程序中
- 错误:无法在node.js中find模块
- 页面error handling(PhantomJS)
- Express 4 / Node JS – 非常好地pipe理uncaughtException