Node.js - assert.fail() 函数



Node.js assert.fail() 函数将抛出一个 AssertionError 以及我们作为参数传递的错误消息或默认错误消息。如果我们传递的消息是 Error 的实例,那么它将被抛出,而不是 AssertionError。

assert 模块提供了一组用于验证不变量的 assert 函数。Node.js assert.fail() 函数是 Node.js 的 assert 模块的内置函数。

语法

以下是 assert.fail() 函数Node.js的语法 -


 assert.fail([message]);

参数

  • message − (可选) 字符串或错误类型可以作为输入传递给此参数。默认情况下,它将打印“失败”。

返回值

此方法将返回一个 AssertionError 以及在参数中传递到输出的消息。

在下面的示例中,我们将文本传递给 Node.js assert.fail() 函数的消息参数。


const assert = require('assert');
const err = 'Warning';
assert.fail(err);

输出

当我们编译并运行代码时,该函数会将 AssertionError 和消息抛出到输出中。

assert.js:79
throw new AssertionError(obj);
^

AssertionError [ERR_ASSERTION]: Warning
at Object.<anonymous> (/home/cg/root/639c30a0a5fb2/main.js:4:8)
at Module._compile (internal/modules/cjs/loader.js:702:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
at Module.load (internal/modules/cjs/loader.js:612:32)
at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
at Function.Module._load (internal/modules/cjs/loader.js:543:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)
at startup (internal/bootstrap/node.js:238:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:572:3)

在下面的示例中,我们将 Error 的实例传递给 assert.fail() 函数的消息参数Node.js。


const assert = require('assert');

const err = new TypeError('Alert, this is a warning...')
assert.fail(err);

输出

当我们编译并运行代码时,该函数不会抛出 AssertionError;将抛出错误。

assert.js:77
if (obj.message instanceof Error) throw obj.message;
^

TypeError: Alert, this is a warning...
at Object.<anonymous> (/home/cg/root/639c30a0a5fb2/main.js:3:13)
at Module._compile (internal/modules/cjs/loader.js:702:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
at Module.load (internal/modules/cjs/loader.js:612:32)
at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
at Function.Module._load (internal/modules/cjs/loader.js:543:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)
at startup (internal/bootstrap/node.js:238:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:572:3)

在下面的示例中,我们没有将任何文本传递给函数的消息参数。因此,它会将默认消息分配为“失败”。


const assert = require('assert');
assert.fail();

输出

在执行上述程序时,它将生成以下输出 -

assert.js:79
throw new AssertionError(obj);
^

AssertionError [ERR_ASSERTION]: Failed
at Object.<anonymous> (/home/cg/root/639c30a0a5fb2/main.js:3:8)
at Module._compile (internal/modules/cjs/loader.js:702:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
at Module.load (internal/modules/cjs/loader.js:612:32)
at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
at Function.Module._load (internal/modules/cjs/loader.js:543:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)
at startup (internal/bootstrap/node.js:238:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:572:3)