【发布时间】:2015-10-05 05:39:25
【问题描述】:
我正在使用 Node.js 开发一个 api,并了解了一个选项,可以在我的应用程序崩溃之前最后一次查看我的错误...(uncaughtException)
注意:我已经充分了解了一些人不喜欢此功能的所有原因,因此请不要在此处发布这些担忧。
我遇到的问题是这样的:
我为不同的代码创建自定义错误类。例如Redis_Exception,它将响应我的缓存层中的错误而被抛出。
但是,以下内容不会出现在我的 uncaughtException 函数中:
throw new Redis_Exception('Some error here');
相反,我的应用只是将Redis_Exception: Some error here 打印到控制台。没有像往常一样的堆栈跟踪。
以这种方式引发的错误不会冒泡到我的应用程序进程的顶部是否有某种原因?
【问题讨论】:
-
听起来像是其他东西在异常冒泡到事件之前捕获了它。
-
是的,我的印象可能是这样。我还没有编写任何其他代码来处理异常。我正在使用 express 来路由请求。那里可能有什么东西?
-
不添加
uncaughtException处理程序是否会正常崩溃? -
不幸的是它不是。每当我抛出错误时,它只会将消息打印到控制台和屏幕。
-
开始闻起来像 express 相关的东西,但从我读到的有关 express 的默认错误处理的内容中,您必须将 err 传递给 next(),我没有这样做。
标签: node.js exception express error-handling