<分区>
我有以下内容:
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
}
}
现在,第一个 Error
被 try...catch
捕获,但第二个 Error
似乎没有被捕获.
几个问题:
- 第二个
错误
是否因为发生在不同的堆栈上而未被捕获?如果是这样,我是否理解try...catch
行为不受词法约束,而是取决于当前堆栈?我的解释正确吗? - 是否有任何经过充分探索的模式来处理此类问题?