當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Node.js assert.throws()用法及代碼示例


assert 模塊提供了一組用於驗證不變量的斷言函數。 assert.throws() 用於當代碼根據特定情況拋出異常時,捕獲錯誤對象進行測試和比較。

用法:

assert.throws(fn[, error][, message])

Parameters: 

該函數接受上麵提到的以下參數,如下所述:

  • fn:此參數是一個不會引發錯誤的函數。
  • error:此參數是正則表達式或函數。這是指定的錯誤。它是一個可選參數。
  • message:此參數保存字符串或錯誤類型的錯誤消息。它是一個可選參數。

返回值:此函數返回對象類型的斷言錯誤。

安裝斷言模塊:

npm install assert

注意:安裝是一個可選步驟,因為它是一個內置的 Node.js 模塊。

2. 安裝assert模塊後,您可以在命令提示符下使用命令查看您的assert版本。

npm version assert

3. 之後,您可以創建一個文件夾並添加一個文件,例如 index.js,如下所示。

範例1:

index.js


// Requiring the module 
const assert = require('assert'); 
      
var invalidNum = function(){
    throw console.log("Invalid Number")
};
  
var someFunc = function(a){
    if(a>10){
        invalidNum();
    }
    else{
        console.log("Valid number");
    }
};
  
assert.throws(function(){
    someFunc(5);
});

運行程序的步驟:

使用以下命令運行index.js文件:

node index.js

輸出:

Valid number
assert.js:105
 throw new AssertionError(obj);
 ^
AssertionError [ERR_ASSERTION]:Missing expected exception.
   at Object.<anonymous> (F:\Blogs\GFG\Assert.throw\index.js:18:8)
   at Module._compile (internal/modules/cjs/loader.js:1063:30)
   at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
   at Module.load (internal/modules/cjs/loader.js:928:32)
   at Function.Module._load (internal/modules/cjs/loader.js:769:14)
   at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
   at internal/main/run_main_module.js:17:47 {
 generatedMessage:false,
 code:'ERR_ASSERTION',
 actual:undefined,
 expected:undefined,
 operator:'throws'
}

範例2:

index.js


// Requiring the module 
const assert = require('assert'); 
      
var invalidNum = function(){
    throw console.log("Invalid Number")
};
  
var someFunc = function(a){
    if(a>10){
        invalidNum();
    }
    else{
        console.log("Valid number");
    }
};
  
assert.throws(function(){
    someFunc(12);
});

運行程序的步驟:

使用以下命令運行index.js文件:

node index.js

輸出:

Invalid Number

參考: https://nodejs.org/api/assert.html#assert_assert_throws_fn_error_message


相關用法


注:本文由純淨天空篩選整理自harshalraikwar07大神的英文原創作品 Node.js assert.throws() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。