• Node.js Video Tutorials

Node.js - assert.ifError() 函数



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

它接受一个参数,该参数应为 Error 对象或计算结果为 false 的值(例如 undefined 或 null)。如果参数为 undefined 或 null,则会抛出一个带有提供的消息的错误。否则,它什么也不做并返回 undefined。这允许开发人员编写处理同步和异步错误的代码,而无需每次都手动检查它们。

语法

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

assert.ifError(value);

参数

  • value − (必填) 我们传递的值存储在此参数中。如果该值不是 undefinednull,则此函数会抛出此值,并且输入值可以是任何类型。

返回值

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

示例

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

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

输出

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

// Returns nothing

示例

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

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

输出

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

// Returns nothing

注意 − 除非该值为 undefinednull,否则该函数将抛出 AssertionError 以及该值。

示例

在下面的示例中,我们将一个整数传递给函数的 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 的实例传递给函数的 message 参数。

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)
nodejs_assert_module.htm
广告