Node.js中未捕获的异常是什么?

时间:2014-08-24 08:01:12

标签: node.js

Node.js中未捕获的异常(以及一般的异常)是什么?

所有资源都是关于如何处理它们的,但我没有找到任何解释它们是什么以及它们发生的原因。

2 个答案:

答案 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