assert.doesNotThrow(fn[, error][, message])
曆史
版本 | 變化 |
---|---|
v5.11.0、v4.4.5 |
|
v4.2.0 |
|
v0.1.21 | 添加於:v0.1.21 |
參數
fn
<Function>error
<RegExp> | <Function>message
<string>
斷言函數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: Whoops
const assert = require('node:assert/strict'); assert.doesNotThrow( () => { throw new TypeError('Wrong value'); }, /Wrong value/, 'Whoops' ); // Throws: AssertionError: Got unwanted exception: Whoops
相關用法
- Node.js assert.doesNotThrow()用法及代碼示例
- Node.js assert.doesNotReject(asyncFn[, error][, message])用法及代碼示例
- Node.js assert.doesNotMatch()用法及代碼示例
- Node.js assert.doesNotMatch(string, regexp[, message])用法及代碼示例
- Node.js assert.deepStrictEqual()用法及代碼示例
- Node.js assert.deepEqual(actual, expected[, message])用法及代碼示例
- Node.js assert.deepStrictEqual(actual, expected[, message])用法及代碼示例
- Node.js assert.deepEqual()用法及代碼示例
- Node.js assert.notEqual(actual, expected[, message])用法及代碼示例
- Node.js assert.notDeepStrictEqual(actual, expected[, message])用法及代碼示例
- Node.js assert.fail(actual, expected[, message[, operator[, stackStartFn]]])用法及代碼示例
- Node.js assert.throws(fn[, error][, message])用法及代碼示例
- Node.js assert.equal()用法及代碼示例
- Node.js assert.ifError()用法及代碼示例
- Node.js assert.throws()用法及代碼示例
- Node.js assert.ok()用法及代碼示例
- Node.js assert.strictEqual()用法及代碼示例
- Node.js assert.fail()用法及代碼示例
- Node.js assert.strictEqual(actual, expected[, message])用法及代碼示例
- Node.js assert.notStrictEqual(actual, expected[, message])用法及代碼示例
- Node.js assert.match()用法及代碼示例
- Node.js assert.notDeepStrictEqual()用法及代碼示例
- Node.js assert.rejects()用法及代碼示例
- Node.js assert.rejects(asyncFn[, error][, message])用法及代碼示例
- Node.js assert.match(string, regexp[, message])用法及代碼示例
注:本文由純淨天空篩選整理自nodejs.org大神的英文原創作品 assert.doesNotThrow(fn[, error][, message])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。