From 2141d374527337f7e1c74c9efad217b017d945cf Mon Sep 17 00:00:00 2001 From: Chris Burkhart Date: Wed, 21 Dec 2016 09:32:21 -0800 Subject: [PATCH] events: update and clarify error message MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update error message that's thrown when no error listeners are attached to an emitter. PR-URL: https://github.com/nodejs/node/pull/10387 Reviewed-By: Sam Roberts Reviewed-By: Colin Ihrig Reviewed-By: Luigi Pinca Reviewed-By: Italo A. Casas Reviewed-By: James M Snell Reviewed-By: Michaƫl Zasso --- lib/events.js | 4 ++-- test/parallel/test-event-emitter-errors.js | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/events.js b/lib/events.js index dfd0ed57d42..eabf5c2cc7f 100644 --- a/lib/events.js +++ b/lib/events.js @@ -171,7 +171,7 @@ EventEmitter.prototype.emit = function emit(type) { er = arguments[1]; if (domain) { if (!er) - er = new Error('Uncaught, unspecified "error" event'); + er = new Error('Unhandled "error" event'); if (typeof er === 'object' && er !== null) { er.domainEmitter = this; er.domain = domain; @@ -182,7 +182,7 @@ EventEmitter.prototype.emit = function emit(type) { throw er; // Unhandled 'error' event } else { // At least give some kind of context to the user - var err = new Error('Uncaught, unspecified "error" event. (' + er + ')'); + const err = new Error('Unhandled "error" event. (' + er + ')'); err.context = er; throw err; } diff --git a/test/parallel/test-event-emitter-errors.js b/test/parallel/test-event-emitter-errors.js index 2b4a93ae980..be4f4007f09 100644 --- a/test/parallel/test-event-emitter-errors.js +++ b/test/parallel/test-event-emitter-errors.js @@ -5,6 +5,10 @@ const assert = require('assert'); const EE = new EventEmitter(); -assert.throws(function() { +assert.throws(() => { EE.emit('error', 'Accepts a string'); -}, /Accepts a string/); +}, /^Error: Unhandled "error" event\. \(Accepts a string\)$/); + +assert.throws(() => { + EE.emit('error', {message: 'Error!'}); +}, /^Error: Unhandled "error" event\. \(\[object Object\]\)$/);