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


Node.js assert.doesNotThrow(fn[, error][, message])用法及代碼示例


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

曆史
版本變化
v5.11.0、v4.4.5

message 參數現在受到尊重。

v4.2.0

error 參數現在可以是箭頭函數。

v0.1.21

添加於:v0.1.21


參數

斷言函數fn 不會引發錯誤。

使用assert.doesNotThrow() 實際上沒有用,因為捕獲錯誤然後重新拋出它沒有任何好處。相反,請考慮在不應拋出的特定代碼路徑旁邊添加注釋,並盡可能保持錯誤消息的表現力。

assert.doesNotThrow()被調用時,它會立即調用fn函數。

如果拋出錯誤並且它與 error 參數指定的類型相同,則拋出 AssertionError 。如果錯誤屬於不同類型,或者 error 參數未定義,則錯誤將傳播回調用者。

如果指定,error 可以是 Class RegExp 或驗證函數。有關詳細信息,請參閱 assert.throws()

例如,以下將拋出 TypeError ,因為斷言中沒有匹配的錯誤類型:

import assert from 'node:assert/strict';

assert.doesNotThrow(
  () => {
    throw new TypeError('Wrong value');
  },
  SyntaxError
);const assert = require('node:assert/strict');

assert.doesNotThrow(
  () => {
    throw new TypeError('Wrong value');
  },
  SyntaxError
);

但是,以下將導致 AssertionError 帶有消息“得到不需要的異常...”:

import assert from 'node:assert/strict';

assert.doesNotThrow(
  () => {
    throw new TypeError('Wrong value');
  },
  TypeError
);const assert = require('node:assert/strict');

assert.doesNotThrow(
  () => {
    throw new TypeError('Wrong value');
  },
  TypeError
);

如果拋出 AssertionError 並為 message 參數提供了一個值,則 message 的值將附加到 AssertionError 消息中:

import assert from 'node:assert/strict';

assert.doesNotThrow(
  () => {
    throw new TypeError('Wrong value');
  },
  /Wrong value/,
  'Whoops'
);
// Throws: AssertionError: Got unwanted exception: Whoopsconst assert = require('node:assert/strict');

assert.doesNotThrow(
  () => {
    throw new TypeError('Wrong value');
  },
  /Wrong value/,
  'Whoops'
);
// Throws: AssertionError: Got unwanted exception: Whoops

相關用法


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