util: improve error message of _errnoException
The usage of ERR_INVALID_ARG_TYPE in _errnoException is a little inappropriate. This change is to improve it. PR-URL: https://github.com/nodejs/node/pull/17626 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Evan Lucas <evanlucas@me.com> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
parent
f94eec0218
commit
c64ca56def
@ -1056,9 +1056,12 @@ function error(...args) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function _errnoException(err, syscall, original) {
|
function _errnoException(err, syscall, original) {
|
||||||
if (typeof err !== 'number' || err >= 0 || !Number.isSafeInteger(err)) {
|
if (typeof err !== 'number') {
|
||||||
throw new errors.TypeError('ERR_INVALID_ARG_TYPE', 'err',
|
throw new errors.TypeError('ERR_INVALID_ARG_TYPE', 'err', 'number', err);
|
||||||
'negative number');
|
}
|
||||||
|
if (err >= 0 || !Number.isSafeInteger(err)) {
|
||||||
|
throw new errors.RangeError('ERR_OUT_OF_RANGE', 'err',
|
||||||
|
'a negative integer', err);
|
||||||
}
|
}
|
||||||
const name = errname(err);
|
const name = errname(err);
|
||||||
var message = `${syscall} ${name}`;
|
var message = `${syscall} ${name}`;
|
||||||
|
@ -20,12 +20,25 @@ keys.forEach((key) => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
[0, 1, 'test', {}, [], Infinity, -Infinity, NaN].forEach((key) => {
|
['test', {}, []].forEach((key) => {
|
||||||
common.expectsError(
|
common.expectsError(
|
||||||
() => util._errnoException(key),
|
() => util._errnoException(key),
|
||||||
{
|
{
|
||||||
code: 'ERR_INVALID_ARG_TYPE',
|
code: 'ERR_INVALID_ARG_TYPE',
|
||||||
type: TypeError,
|
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}`
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user