我有一个带有以下代码的方法:
console.log('Should fail here')
assert(false)
console.log('Does this print?')
在我的应用程序中运行时:
- "应该在这里失败"打印
- 断言错误不起作用。控制台上不会打印任何错误。
- "这打印吗?"不打印。所以看起来断言错误运行了,但没有做任何事情。
我可以将相同的代码添加到更高的范围,它按预期工作,引发异常。
我还可以使用节点检查器启动我的应用程序并运行:
debugger;
然后键入:
assert(false)
在同一个地方,错误将打印到节点检查器:
AssertionError: false == true
但是,常规控制台仍然保持空白。
什么会导致此行为?
Express 中间件
中的错误,或者从 Express 中间件调用的任何错误都以静默方式失败。请参阅 Nodejs:如何从中间件捕获异常?了解详情。