Node.js - assert.ifError() 函数



Node.js assert.ifError() 函数用于测试异步操作中的错误,并在发生错误时引发错误。

它需要一个参数,该参数应该是 Error 对象或计算结果为 false 的值(例如 undefined 或 null)。如果参数未定义或为 null,则会引发错误并显示提供的消息。否则,它不执行任何操作并返回 undefined。这使开发人员可以编写处理同步和异步错误的代码,而无需每次都手动检查它们。

语法

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


 assert.ifError(value);

参数

  • value − (必填) 我们传递的值存储在此参数中。如果此值不是未定义或 null,则此函数将抛出此值,并且 Input 值可以是任何类型。

返回值

此函数返回要输出的对象类型的 AssertionError。

在下面的以下示例中,我们将 'undefined' 传递给 Node.js assert.ifError() 函数的 value 参数。


const assert = require('assert');
var und = undefined;
assert.ifError(und);

输出

在执行上述程序时,ifError() 函数不会抛出 AssertionError,因为值未定义。

// 不返回任何内容

在下面的示例中,我们将 'null' 传递给 Node.js assert.ifError() 函数的 value 参数。


const assert = require('assert');
var NULL = null;
assert.ifError(NULL);

输出

在执行上述程序时,ifError() 函数不会抛出 AssertionError,因为该值为 null。

// 不返回任何内容

注意 - 该函数将抛出 AssertionError 和值,除非该值未定义或为 null。

在下面的示例中,我们将一个整数传递给函数的 value 参数。


const assert = require('assert');
var num = 55;
assert.ifError(num);

输出

在执行上述程序时,该函数将抛出 AssertionError 以及我们传递的值。

assert.js:667
throw newErr;
^

AssertionError [ERR_ASSERTION]: ifError got unwanted exception: 55
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)

在下面的示例中,我们将一个字符串传递给函数的 value 参数。


const assert = require('assert');

var text = 'Tutorialspoint';
assert.ifError(text);

输出

在执行上述程序时,该函数将抛出 AssertionError 以及我们传递的值。


assert.js:667
   throw newErr;
   ^
   
AssertionError [ERR_ASSERTION]: ifError got unwanted exception: 'Tutorialspoint'
   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 的实例传递给函数的消息参数。


const assert = require('assert');
var err = new Error('Error warning!!!!');
assert.ifError(err);

输出

因此,当我们编译并运行代码时,函数将抛出 AssertionError,并且将抛出 Error 的值。

assert.js:667
throw newErr;
^

AssertionError [ERR_ASSERTION]: ifError got unwanted exception: Error warning!!!!
at Object.<anonymous> (/home/cg/root/639c30a0a5fb2/main.js:4:8)
at Object.<anonymous> (/home/cg/root/639c30a0a5fb2/main.js:3:11)
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)