错误是一种内置于 JS 语言的对象类型,由名称/类型和消息组成。错误包含重要信息,可帮助您定位导致错误的代码、确定出现此错误的原因以及解决错误。
代码执行过程中会发生各种各样的错误,现在让我们来看看几种常见的错误类型
当您尝试运行的代码不符合 JavaScript 的语法规则时,就会发生语法错误。例如这个:
let arr = 2b
将抛出以下错误,因为我们忘记给字符串添加引号了,不符合 JavaScript 语法规则。
参考SyntaxError - JavaScript | MDN(opens new window)
ReferecnceError 错误会在找不到对象时发生,例如这个:
console.log(a)
将抛出以下错误,因为我们还没有定义 a 这个变量,导致找不到 a 这个变量.
参考ReferenceError - JavaScript | MDN(opens new window)
TypeError 错误主要发生在变量不是预期类型,或者访问不存在的方法时发生,实际开发过程中会有很多原因导致这种错误,尤其是在使用类型特定的操作而变量类型不对时发生,比如这个:
let str = "hello"; str.forEach((element) => { console.log(element); });
将抛出以下错误,因为 forEach 方法只能在数组类型对象上使用,不能在字符串上使用,因为导致抛出 TypeError 错误
参考TypeError - JavaScript | MDN(opens new window)
RangeError 错误会在数值越界时抛出,例如这个:
let arr = new Array(-20);
将抛出以下错误,因为定义数组时设置了并不支持的长度。
参考RangeError - JavaScript | MDN(opens new window)
如果您需要详细了解更多 JavaScript 错误类型,请阅读MDN Javascript 错误参考(opens new window)
错误处理在编程中的重要性毋庸置疑,但是在应用程序的浏览器端进展缓慢,一个良好的错误处理策略可以让用户知道到底发生了什么,提高系统开发效率。
ECMA-262 第三版新增了 try-catch 语句,作为 JavaScript 处理异常的一种方式,阅读以下文档学习错误处理机制。
现在,请你开发一个乐透球号码生成系统,按照如下要求进行错误处理。
下载letto.zip (opens new window),保存到本地,您将得到一个 index.html,script.js,style.css 三个文件。
系统介绍
乐透球生成器,分为三个部分,左边显示历史乐透球号码列表,右边显示生成的乐透球号,下面是乐透球的数值范围和个数限制工具栏。 根据您输入的数值范围,以及个数,生成符合要求的乐透球,点击生成按钮,会根据要求生成在数值范围内,不重复的乐透球号码
测试用例
如果您按照上面要求进行输入,系统会正常运行,但是当你输入不符合要求的数值,系统的运行就会报错
不合法乐透球个数错误:
不合法数值范围错误:
自定义错误类型
请您根据不同情况抛出不同的错误,以提高程序的维护性,让错误更加清晰明了
不合法乐透球个数错误:
不合法数值范围错误:当输入的乐透球数值范围大于 1-49 请你在这种情况抛出一个 invalidRangeNumError 继承于 Error 类型,错误信息为 不合法数值范围错误:数值范围不符合1-49!
数值上限小于下限错误:请您在这种情况抛出一个依旧 invalidRangeNumError (继承于 Error 类型),错误信息为 不合法数值范围错误:最小数大于最大数,
针对不同类型错误进行错误捕获和处理
使用断点定位到点击事件,捕捉错误:
本节包含一些问题,供您检查您对本课程的理解。如果您自己无法回答以下问题,请查看以上材料以找到答案。
function test() { try { return 2; } catch (error) { return 1; } finally { return 0; console.log(a); } } console.log(test());
更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。
长按或扫描下方二维码,免费获取 Python公开课和大佬打包整理的几百G的学习资料,内容包含但不限于Python电子书、教程、项目接单、源码等等
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!