Skip to content

Commit c64ca56

Browse files
committed
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: #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>
1 parent f94eec0 commit c64ca56

File tree

2 files changed

+21
-5
lines changed

2 files changed

+21
-5
lines changed

lib/util.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1056,9 +1056,12 @@ function error(...args) {
10561056
}
10571057

10581058
function _errnoException(err, syscall, original) {
1059-
if (typeof err !== 'number' || err >= 0 || !Number.isSafeInteger(err)) {
1060-
throw new errors.TypeError('ERR_INVALID_ARG_TYPE', 'err',
1061-
'negative number');
1059+
if (typeof err !== 'number') {
1060+
throw new errors.TypeError('ERR_INVALID_ARG_TYPE', 'err', 'number', err);
1061+
}
1062+
if (err >= 0 || !Number.isSafeInteger(err)) {
1063+
throw new errors.RangeError('ERR_OUT_OF_RANGE', 'err',
1064+
'a negative integer', err);
10621065
}
10631066
const name = errname(err);
10641067
var message = `${syscall} ${name}`;

test/parallel/test-uv-errno.js

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,25 @@ keys.forEach((key) => {
2020
});
2121
});
2222

23-
[0, 1, 'test', {}, [], Infinity, -Infinity, NaN].forEach((key) => {
23+
['test', {}, []].forEach((key) => {
2424
common.expectsError(
2525
() => util._errnoException(key),
2626
{
2727
code: 'ERR_INVALID_ARG_TYPE',
2828
type: TypeError,
29-
message: 'The "err" argument must be of type negative number'
29+
message: 'The "err" argument must be of type number. ' +
30+
`Received type ${typeof key}`
31+
});
32+
});
33+
34+
[0, 1, Infinity, -Infinity, NaN].forEach((key) => {
35+
common.expectsError(
36+
() => util._errnoException(key),
37+
{
38+
code: 'ERR_OUT_OF_RANGE',
39+
type: RangeError,
40+
message: 'The value of "err" is out of range. ' +
41+
'It must be a negative integer. ' +
42+
`Received ${key}`
3043
});
3144
});

0 commit comments

Comments
 (0)