所以我一直在为 Visual Studio ( https://nodejstools.codeplex.com ) 使用 Node.js 工具。
我有这个反复出现的问题,当出现异常时它总是会开始调试。这听起来像是一件好事,但当异常应该被捕获时却不是!
以此为例(这是来自 bson 模块)
try {
// Load the precompiled win32 binary
if(process.platform == "win32" && process.arch == "x64") {
bson = require('./win32/x64/bson');
} else if(process.platform == "win32" && process.arch == "ia32") {
bson = require('./win32/ia32/bson');
} else {
bson = require('../build/Release/bson');
}
} catch(err) {
console.error("Failed to load c++ bson extension, using pure JS version");
bson = require('../lib/bson/bson');
}
在这里它将在被捕获使用纯 JS 版本之前进入调试,这是一种预期的行为,但我希望 VS 在之后被捕获时避免开始调试...... (这清楚吗?)
我的临时解决方案是转到 Debug/Exceptions/Node.js Exceptions 并取消选中 Error 下所有内容的“Thrown”...但是当我遇到需要抛出的真正错误时,调试器不会选择它们。
也许这只是工具的限制,因为它很新,但是如果其他人找到了解决方案,那将非常有帮助!