summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorRuben Bridgewater <ruben@bridgewater.de>2018-03-19 14:18:50 +0100
committerRuben Bridgewater <ruben@bridgewater.de>2018-03-25 03:01:45 +0200
commitb38c81cb449a822ab45e6caa210d070b91a59836 (patch)
treeeb6fe75fa90a4f8829277a5c2382aaa8a958abf9 /lib
parentacc3c770e7717673ee87fa37076fc50fcb91e4ea (diff)
downloadnode-new-b38c81cb449a822ab45e6caa210d070b91a59836.tar.gz
lib: improve error handling
This improves the error handling for a couple cases where the received value would not have been handled so far or where the name is wrong etc. PR-URL: https://github.com/nodejs/node/pull/19445 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
Diffstat (limited to 'lib')
-rw-r--r--lib/_http_client.js5
-rw-r--r--lib/_http_outgoing.js2
-rw-r--r--lib/_tls_wrap.js3
-rw-r--r--lib/buffer.js5
-rw-r--r--lib/internal/http2/compat.js7
5 files changed, 15 insertions, 7 deletions
diff --git a/lib/_http_client.js b/lib/_http_client.js
index 03c69a9306..5ab6d0bdba 100644
--- a/lib/_http_client.js
+++ b/lib/_http_client.js
@@ -87,8 +87,9 @@ function ClientRequest(options, cb) {
// Explicitly pass through this statement as agent will not be used
// when createConnection is provided.
} else if (typeof agent.addRequest !== 'function') {
- throw new ERR_INVALID_ARG_TYPE('Agent option',
- ['Agent-like Object', 'undefined', 'false']);
+ throw new ERR_INVALID_ARG_TYPE('options.agent',
+ ['Agent-like Object', 'undefined', 'false'],
+ agent);
}
this.agent = agent;
diff --git a/lib/_http_outgoing.js b/lib/_http_outgoing.js
index 2af2fddb62..adc4481347 100644
--- a/lib/_http_outgoing.js
+++ b/lib/_http_outgoing.js
@@ -755,7 +755,7 @@ OutgoingMessage.prototype.end = function end(chunk, encoding, callback) {
var uncork;
if (chunk) {
if (typeof chunk !== 'string' && !(chunk instanceof Buffer)) {
- throw new ERR_INVALID_ARG_TYPE('first argument', ['string', 'Buffer']);
+ throw new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);
}
if (!this._header) {
if (typeof chunk === 'string')
diff --git a/lib/_tls_wrap.js b/lib/_tls_wrap.js
index 41dd001bd6..686e109ca3 100644
--- a/lib/_tls_wrap.js
+++ b/lib/_tls_wrap.js
@@ -908,7 +908,8 @@ function Server(options, listener) {
this[kSNICallback] = options.SNICallback;
if (typeof this[kHandshakeTimeout] !== 'number') {
- throw new ERR_INVALID_ARG_TYPE('timeout', 'number');
+ throw new ERR_INVALID_ARG_TYPE(
+ 'options.handshakeTimeout', 'number', options.handshakeTimeout);
}
if (this.sessionTimeout) {
diff --git a/lib/buffer.js b/lib/buffer.js
index a13ada73ce..45c1282f2d 100644
--- a/lib/buffer.js
+++ b/lib/buffer.js
@@ -461,7 +461,10 @@ Buffer.concat = function concat(list, length) {
for (i = 0; i < list.length; i++) {
var buf = list[i];
if (!isUint8Array(buf)) {
- throw new ERR_INVALID_ARG_TYPE('list', ['Array', 'Buffer', 'Uint8Array']);
+ // TODO(BridgeAR): This should not be of type ERR_INVALID_ARG_TYPE.
+ // Instead, find the proper error code for this.
+ throw new ERR_INVALID_ARG_TYPE(
+ `list[${i}]`, ['Array', 'Buffer', 'Uint8Array'], list[i]);
}
_copy(buf, buffer, pos);
pos += buf.length;
diff --git a/lib/internal/http2/compat.js b/lib/internal/http2/compat.js
index 78fedcb2ce..1a855f5bf0 100644
--- a/lib/internal/http2/compat.js
+++ b/lib/internal/http2/compat.js
@@ -13,6 +13,7 @@ const {
ERR_HTTP2_PSEUDOHEADER_NOT_ALLOWED,
ERR_HTTP2_STATUS_INVALID,
ERR_INVALID_ARG_TYPE,
+ ERR_INVALID_ARG_VALUE,
ERR_INVALID_CALLBACK,
ERR_INVALID_HTTP_TOKEN
} = require('internal/errors').codes;
@@ -312,8 +313,10 @@ class Http2ServerRequest extends Readable {
}
set method(method) {
- if (typeof method !== 'string' || method.trim() === '')
- throw new ERR_INVALID_ARG_TYPE('method', 'string');
+ if (typeof method !== 'string')
+ throw new ERR_INVALID_ARG_TYPE('method', 'string', method);
+ if (method.trim() === '')
+ throw new ERR_INVALID_ARG_VALUE('method', method);
this[kHeaders][HTTP2_HEADER_METHOD] = method;
}