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 以及我们传递的值。
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 的值。
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)