I've got the following:
var http = require('http');
server = http.createServer(function(request, response) {
try {
// Register a callback: this happens on a new stack on some later tick
request.on('end', function() {
throw new Error; // Not caught
})
throw new Error; // Caught below
}
catch (e) {
// Handle logic
}
}
Now, the first Error
gets caught in the try...catch
, but the second Error
does not appear to be getting caught.
A couple questions:
- Does the second
Error
not get caught because it occurs on a different stack? If so, am I to understand thattry...catch
behavior is not lexically bound, but depends instead on the current stack? Am I interpreting this correctly? - Are there any well-explored patterns to handle this type of problem?