节点断言错误未打印,断言以静默方式失败

Node AssertionErrors not printing, assertions failing silently

本文关键字:断言 静默 方式 失败 打印 错误 节点      更新时间:2023-09-26

我有一个带有以下代码的方法:

  console.log('Should fail here')
  assert(false)
  console.log('Does this print?')

在我的应用程序中运行时:

  1. "应该在这里失败"打印
  2. 断言错误不起作用。控制台上不会打印任何错误。
  3. "这打印吗?"不打印。所以看起来断言错误运行了,但没有做任何事情。

我可以将相同的代码添加到更高的范围,它按预期工作,引发异常。

我还可以使用节点检查器启动我的应用程序并运行:

debugger;

然后键入:

assert(false)

在同一个地方,错误将打印到节点检查器:

AssertionError: false == true

但是,常规控制台仍然保持空白。

什么会导致此行为?

Express 中间件

中的错误,或者从 Express 中间件调用的任何错误都以静默方式失败。请参阅 Nodejs:如何从中间件捕获异常?了解详情。