What is the doesNotThrow method of the assert module in Node.js?

The doesNotThrow method of the assert module in Node.js asserts that a provided function does not throw an error. The provided function is executed whenever the doesNotThrow method is invoked.

To use the doesNotThrow method, you will need to install the assert module using the command prompt, as shown below:

npm install assert

After the installation is complete, you will need to import the assert module into the program, as shown below:

const assert = require('assert');

The prototype of the doesNotThrow method is:

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

Parameters

The doesNotThrow method takes the following parameters:

  • fn: The function to be executed whenever the doesNotThrow method is invoked.

  • error: An optional parameter that may be either a Regular Expression or a function.

  • message: An optional parameter that represents an error message.

Return value

The doesNotThrow method invokes the function (fn). If an error is thrown, there are two possible outcomes:

  1. If the type of the error is the same as that of the error parameter, then the doesNotThrow method throws an AssertionError.
  2. If the error parameter was not provided or the error type does not match, the error propagates back to the caller.

Example

The code below shows how the doesNotThrow method works in Node.js:

const assert = require('assert');
console.log("Example 1:")
// error types match
try{
assert.doesNotThrow(
() => {
throw new TypeError("Assertion Error Thrown.")
},
TypeError,
"Error types match."
);
}
catch(error){
console.log(error.message)
}
console.log("\nExample 2:")
// error types do not match
try{
assert.doesNotThrow(
() => {
throw new TypeError("Type Error Thrown.")
},
SyntaxError,
"Error types do not match."
);
}
catch(error){
console.log(error.message)
}

Explanation

The code above uses two examples to demonstrate the behavior of the doesNotThrow method.

In the first call to the doesNotThrow method in line 77, a TypeError is thrown. Since the error parameter is also a TypeError, an AssertionError is thrown and the provided message parameter is output.

In the call to the doesNotThrow method in line 2525, a TypeError is thrown again, but the error parameter holds SyntaxError instead of TypeError.

Since there is no matching error type, a TypeError is thrown instead of an AssertionError, and the message parameter is not output.

Note: You can view further examples on how to use the doesNotThrow method here.

Free Resources

Copyright ©2025 Educative, Inc. All rights reserved