I wrote a simple test of nested domains which looks like this:
var topDomain = domain.create();
var subDomain = domain.create();
topDomain.add(subDomain);
topDomain.on("error", function(err) {
console.log("Top saw an error: " + err.message);
});
subDomain.on("error", function(err) {
console.log("Sub saw an error: " + err.message);
throw new Error("bar")
});
topDomain.run( function() {
subDomain.run(function() {
throw new Error("foo");
});
});
What I was expecting to happen is
1. subDomain catches the first error (foo) and prints a message
2. Since subDomain is a member of topDomain, topDomain catches the
second error (bar), which is thrown from a subDomain event. Now topDomain
prints out a message.
3. Done
4. That is, the output should look like:
Sub saw an error: foo
Top saw an error: bar
That's what happens when I run node under the IntelliJ debugger (no
breakpoints set, just run it to completion.) But if I run node without
the debugger, either under IntelliJ or directly from the command line, the
output is
Sub saw an error: foo
/Users/mike/Documents/workspace-sts-2.9.0.RELEASE/mms/src/js/scripts/testDomains.js:107
throw new Error("bar")
^
Error: bar
at Domain.<anonymous>
(/Users/mike/Documents/workspace-sts-2.9.0.RELEASE/mms/src/js/scripts/testDomains.js:107:11)
at Domain.EventEmitter.emit (events.js:88:17)
at process.uncaughtHandler (domain.js:60:20)
at process.EventEmitter.emit (events.js:115:20)
That is, the first error is caught but not the second one. This is v0.8.1
on Mac.
--
Job Board: http://jobs.nodejs.org/
Posting guidelines:
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en