• 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
廣告