Skip to content

Commit

Permalink
util: improve error message of _errnoException
Browse files Browse the repository at this point in the history
The usage of ERR_INVALID_ARG_TYPE in _errnoException
is a little inappropriate. This change is to improve it.

PR-URL: nodejs#17626
Reviewed-By: Ruben Bridgewater <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Evan Lucas <[email protected]>
Reviewed-By: Gireesh Punathil <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: James M Snell <[email protected]>
  • Loading branch information
starkwang committed Dec 29, 2017
1 parent f94eec0 commit c64ca56
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 5 deletions.
9 changes: 6 additions & 3 deletions lib/util.js
Original file line number Diff line number Diff line change
Expand Up @@ -1056,9 +1056,12 @@ function error(...args) {
}

function _errnoException(err, syscall, original) {
if (typeof err !== 'number' || err >= 0 || !Number.isSafeInteger(err)) {
throw new errors.TypeError('ERR_INVALID_ARG_TYPE', 'err',
'negative number');
if (typeof err !== 'number') {
throw new errors.TypeError('ERR_INVALID_ARG_TYPE', 'err', 'number', err);
}
if (err >= 0 || !Number.isSafeInteger(err)) {
throw new errors.RangeError('ERR_OUT_OF_RANGE', 'err',
'a negative integer', err);
}
const name = errname(err);
var message = `${syscall} ${name}`;
Expand Down
17 changes: 15 additions & 2 deletions test/parallel/test-uv-errno.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,25 @@ keys.forEach((key) => {
});
});

[0, 1, 'test', {}, [], Infinity, -Infinity, NaN].forEach((key) => {
['test', {}, []].forEach((key) => {
common.expectsError(
() => util._errnoException(key),
{
code: 'ERR_INVALID_ARG_TYPE',
type: TypeError,
message: 'The "err" argument must be of type negative number'
message: 'The "err" argument must be of type number. ' +
`Received type ${typeof key}`
});
});

[0, 1, Infinity, -Infinity, NaN].forEach((key) => {
common.expectsError(
() => util._errnoException(key),
{
code: 'ERR_OUT_OF_RANGE',
type: RangeError,
message: 'The value of "err" is out of range. ' +
'It must be a negative integer. ' +
`Received ${key}`
});
});

0 comments on commit c64ca56

Please sign in to comment.