当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。