Node.js中未捕获的异常(以及一般的异常)是什么?
所有资源都是关于如何处理它们的,但我没有找到任何解释它们是什么以及它们发生的原因。
答案 0 :(得分:2)
当代码执行它可能不应该执行的操作时会发生异常。各种事物都有很多类型的例外。
例如:
var array = ["A", "B", "C"];
var s = array[1357].toLowerCase();
// TypeError: Cannot read property 'toLowerCase' of undefined
someOther.code().toRun(); // this will NOT run, execution is aborted at the exception
这是一个例外。
Uncaught 只是意味着没有代码正在寻找该execption,以便可以优雅地处理它。未捕获的异常停止执行代码并在控制台中显示为错误。在生产代码中,未捕获的异常是一件非常糟糕的事情。
使用try / catch块进行未捕获的异常捕获。您可能会在所找到的所有“如何处理它们”资源中阅读这些资料。
try {
var array = ["A", "B", "C"];
var s = array[1357].toLowerCase();
} catch (e) {
console.log("Don't do that, seriously");
}
someOther.code().toRun(); // this does run, execution continues after caught exception
答案 1 :(得分:1)
异常基本上是某些事情“破裂”。例如:
alert(x);
将导致“ReferenceError:x未定义”,因为尚未定义x。这是一个未被捕获的例外。
处理异常的一种方法是将它们包装在一个简单的try / catch中:
try {
alert(x)
}
catch (e) {
alert("x wasn't defined");
}
为了保持代码顺利运行,您需要尝试捕获并处理所有潜在的异常,否则您的脚本将停止处理。
详细了解MDN