mirror of https://github.com/nodejs/node.git
events: provide better error message for unhandled error
Previously, in the event of an unhandled error event, if the error is a not an actual Error, then a default error is thrown. Now, the argument is appended to the error message and added as the `context` property of the error. PR-URL: https://github.com/iojs/io.js/pull/1654 Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>pull/1654/head
parent
08d08668c9
commit
8b9a1537ad
|
@ -140,7 +140,10 @@ EventEmitter.prototype.emit = function emit(type) {
|
||||||
} else if (er instanceof Error) {
|
} else if (er instanceof Error) {
|
||||||
throw er; // Unhandled 'error' event
|
throw er; // Unhandled 'error' event
|
||||||
} else {
|
} else {
|
||||||
throw new Error('Uncaught, unspecified "error" event.');
|
// At least give some kind of context to the user
|
||||||
|
var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
|
||||||
|
err.context = er;
|
||||||
|
throw err;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
var EventEmitter = require('events');
|
||||||
|
var assert = require('assert');
|
||||||
|
|
||||||
|
var EE = new EventEmitter();
|
||||||
|
|
||||||
|
assert.throws(function() {
|
||||||
|
EE.emit('error', 'Accepts a string');
|
||||||
|
}, /Accepts a string/);
|
Loading…
Reference in New Issue