重读MDN-Error

MDN里面涵盖了全部web开发的知识,对开发者学习和夯实基础来讲就是一个宝库。web

将官网上的主要知识点抽离,组合成本身的知识网络。正则表达式

每一个人的知识体系是不一样的,但又是各有相同之处,但愿个人整理对您有帮助。express

《重读MDN》系列是做者会坚持下去的,旨在查漏补缺,让本身知识的盲区能缩小些。数组

前置知识

1.eval() 函数 会将传入的字符串当作 JavaScript 代码进行执行。2.URI 统一资源标识符,包括统一资源名称 (URN) 和统一资源定位器 (URL),是一个用于标识某一互联网资源名称的字符串,这些资源包括 HTML 页面、XML 文档、图像、多媒体文件等等。微信

除了通用的Error构造函数外,JavaScript还有7个其余类型的错误构造函数。网络

EvalError

EvalError表明了一个关于 eval 函数的错误.此异常再也不会被JavaScript抛出,可是EvalError对象仍然保持兼容性.app

try { throw new EvalError('Hello', 'someFile.js', 10);} catch (e) { console.log(e instanceof EvalError); // true console.log(e.message); // "Hello" console.log(e.name); // "EvalError" console.log(e.fileName); // "someFile.js" console.log(e.lineNumber); // 10 console.log(e.columnNumber); // 0 console.log(e.stack); // "@Scratchpad/2:2:9\n"}

InternalError

InternalError 对象表示出如今JavaScript引擎内部的错误。例如:"InternalError: too much recursion"(内部错误:递归过深)。函数

当JavaScript引擎出现内部错误时将会抛出InternalError。学习

示例场景一般为某些成分过大,例如:flex

"too many switch cases"(过多case子句);"too many parentheses in regular expression"(正则表达式中括号过多);"array initializer too large"(数组初始化器过大);"too much recursion"(递归过深)。

RangeError

RangeError对象表示当一个值不在其所容许的范围或者集合中一个错误。

试图传递一个number参数给一个范围内不包含该number的函数时则会引起RangeError。当传递一个不合法的length值做为Array 构造器的参数建立数组,或者传递错误值到数值计算方法(Number.toExponential(),Number.toFixed() ,Number.toPrecision()),会出现RangeError。

ReferenceError

ReferenceError(引用错误) 对象表明当一个不存在的变量被引用时发生的错误。

当你尝试引用一个未被定义的变量时,将会抛出一个 ReferenceError 。

SyntaxError

SyntaxError 对象表明尝试解析语法上不合法的代码的错误。

当Javascript语言解析代码时,Javascript引擎发现了不符合语法规范的tokens或token顺序时抛出SyntaxError.

TypeError

TypeError(类型错误) 对象用来表示值的类型非预期类型时发生的错误。

当传入函数的操做数或参数的类型并不是操做符或函数所预期的类型时,将抛出一个 TypeError 类型错误。

URIError

URIError 对象用来表示以一种错误的方式使用全局URI处理函数而产生的错误。

当向全局 URI 处理函数传递一个不合法的URI时,URIError 错误会被抛出。

语法

都是抛出错误,只是错误类型不一样

尽管如此,他们的语法仍是同样的

new Error([message[, fileName[, lineNumber]]])

参数

1.message 可选参数.人类可阅读的关于错误的描述2.fileName(非标准) 可选参数.代码中致使异常的文件的文件名3.lineNumber(非标准) 可选参数.代码中致使异常的代码的行号

参考文献

Error[1]

References

[1] Error: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Error




本文分享自微信公众号 - 全栈大佬的修炼之路(gh_7795af32a259)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索