理解js中的Error

JavaScript016

理解js中的Error,第1张

通过 Error 构造器我们可以创建一个错误对象,当程序运行出错时,Error的实例对象就会被抛出。

注意 : fileName 和 lineNumber 参数是非标准的api,使用时需要注意其兼容。

除了通用的Error构造函数外, js还有6个其他类型的错误构造函数。

另外 : 还有一个非标准的错误构造函数 IntervalError : js引擎内部的错误, 如递归太多.

在Node.js中, 除了标准的js错误之外, 还有以下几类错误:

所有由 Node.js 引起的 JavaScript 错误与系统错误都继承自或实例化自标准的 JavaScript <Error> 类,且保证至少提供类中的属性。

在Node.js或某些浏览器环境中可能会包含 code, stack 等信息

Node.js中 : 对于所有的 EventEmitter 对象,如果没有提供一个 'error' 事件句柄,则错误会被抛出,并造成 Node.js 进程报告一个未处理的异常且随即崩溃,除非: 适当地使用 domain 模块或已经注册了一个 [ process.on('uncaughtException') ] 事件的句柄。

js reduce()  方法对数组中的每个元素执行一个由您提供的 reducer 函数(升序执行),将其结果汇总为单个返回值。

例如:

reducer 函数接收4个参数:

    Accumulator (acc) (累计器)

    Current Value (cur) (当前值)

    Current Index (idx) (当前索引)

    Source Array (src) (源数组)  

您的 reducer 函数的返回值分配给累计器,该返回值在数组的每个迭代中被记住,并最后成为最终的单个结果值。

如果数组为空且没有提供initialValue,会抛出错误TypeError: reduce of empty array with no initial value

可以通过添加initialValue来解决。

详见: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce