00:00
来,下一个要讲的是GS里面的错误处理,也叫的处理。大家应该知道在promise里面是不是成功的回调和失败的回调之分,那这个就跟是有一定的关系的,所以我们先要把error搞清楚啊,好,这个呢,实际上有一个链接,大家可以把这个链接打开啊。啊,关联到哪去了,MDN,就是其实很多原生的语法啊,大家首先需要看的是MDN上面的一些描述,相关的一些东西啊,你都需要过一过。嗯。嗯。好,这里面呢,我就不大家一个个去看这个文档来,首先我得告诉他位置啊,到后面可以去看。来这里面呢,我有三个方面要跟大家说,第一个是关于错误的类型。
01:00
啊,第二个呢,是关于错误如何处理,第三个是关于错误有一个概念叫错误对象,就是L对象,我们平常说的对不对,这个大家应该懂好,那错误类型是个什么概念呢?它有一个最基本的类型,就叫什么L。就叫I,而I的下面有一些子类型。大家应该有可能见过来,我给大家演示一下,我边说边演示,嗯,因为光说不演示是不行的。啊,这个地方我主要是要跟大家讲一个东西,就是常见的内置错误。也就什么意思,我们原生的代码,代码它内部抛了异常啊,这些异常非常常见,我们来看一下啊,当然还有一些其他的,我就把常见的给大家列出来了,我们现在呢,一个一个去看啊,一个看先看第一个叫啊,这单词要认识啊,叫error,如果直接翻译是什么错误,引用错误,那什么时候引用错误了,来举个例子,我去打印输出,打印输出一个。
02:19
对吧,好,这个大家应该以前老说肯定会提示这个A没有什么not DeFine是不是,那到底是什么样的错误呢?那个你看到的是错误的文本信息,而没有真正去看它的错误,到底是个什么样的错误?能理解不,大家看的,也就是说你们前面看是不是就看这个东西,这是那个错误的message。信息描述能听懂吗?而我们现在要更加彻底点,知道他到底是个什么样的错误,哎,这里面有个是不是是不是。
03:02
引用错误是个什么样的概念?说白了,我引用了一个不存在的变量,是不是就发生就这么个事?啊,在面试的时候他就问你啊,你能说几个常见的错误吗?你可能就知道。因为我们平常交流的时候就叫出来教你error是不是,至于是什么样,Error我们平常有管过吗?没有,那现在不能这样了,你要搞清楚,其实不难,很多东西是你不难,并不代表你就知道,你就清楚,对吧,你要去设计,你要去研究才行啊好,下面一个叫type error什么意思,类型错误是不是好,你比如说。看好了,我来一个一个B等一个可以吧,这个代码写的一点问题都没有,是不是我得先把这个啊,我先啊先先把这个做掉,我要不知道下面代码不会执行的,因为都已经抛错了,但是我没有处理,是不是他刚刚说了这知道这个单什么意思吗?
04:12
大家知道这个是什么意思,是开的那个,那个过去时能听到吧,安开启什么意思,安的没有被处理。也就是说我内部是不是程序运行泡了一个异常,泡了一个错误,但你有去开启吗?没有,那程序还能正常往下执行吗?能不能,嗯,比如说比如说举个例子,我来上面再写个打印输出是吧,我写个这个是不是,那你来看一下我刚才那。下面来说说,说出了吗?没有数据就说明下面代码一点都没执行,是不是能听懂吧?啊这是什么原因呢?没有补货什么,是不是错误,哎,下面的代码干嘛不会是吗?执行是不可能执行的,对不对,这个能懂吧,能懂啊行。
05:18
大家如果不懂的话就说啊好来现在呢,现在比如说举个例子,我去打印输出B点叉叉叉。对吧,能行吗?为啥不行是吧,那还能去点吗?不能来看一下刷新一下。你看他说这个文本,先看一下文本这一个啊,非常非常见。它是什么意思,翻译成中文不能,嗯,在浪上面读浪的什么属性,叉叉属性这个以后非常常见啊,当我也可以说,比如说我这个是安犯的,是不是也有可能是不,甚至我是不是有可能没复值,我定了吧,我如果去直接输出B有问题吗?没有问题,是没有问题的,对不对,但是我现在是不是B点叉叉。
06:18
可以吗?不可以。他是不是在说你不能在安范上面去读他,对不对,这个是在说他,他是安范吗?不是,是说谁是安范B是安。对吧,对的好,那前面是个什么错误,叫type什么意思,类型错误,那也就是说他的意思就是说你要想读属性,左边得是个对象是不是,你不是个对象是不是也不行,好不一定要打印啊,比如说我这。
07:01
能看到吧,啊,那他会提什么,大家还记得吧,应该有,应该有经验啊,他应该会说什么。是不是还是一样的,还是一样的,能看到吧,还是一样的,那也有可能,比如说我这个是个对象,他会说什么。他会说什么?你说我这么做会有问题吗?没有问题,是不是没有问题,只是得到安发的嘛,对不对,咋回事?对,你不能在I范里面当成函数使用啊,你括号的左边得是个什么函数,他说这一个表达式的值不是个什么函数错误还是同样错误,叫什么类型错误?对不,你这个类型的数据没有某个属性,没有某个方法,我是不能用的,对不对。
08:01
能听懂吧,能啊。同样是类型错误,这样啊,我这样走是不是这两个是不都有错误,就上面的这个是有错误的对不对,因为他还没有复值嘛,是吧,是案犯的对吧,而这个了。啊,它不是个函数提示,但是实际上是同样一种错误,对不对,都是什么,都是那个。能听懂吧,都是同样一种类型的错误。这个没问题吧,没问题啊,行,OK,可以,这说的是type下面有一个range range范围的意思就超出了它能承受的范围。我有一个比较常见的例子,我给他写一写,比如说一个FN括号。外面再去调用F什么意思。
09:05
你说我这是,哎,一个函数调用函数,这叫什么。函数内部调用自己叫什么?叫自调用啊,函数自调用是这么说的吗?函数自调用是不定函数马上用括号执行,这叫,这叫什么递归调用。就函数内部调用自己是不是叫递归调用,正常的递归调用是不是要一定的限制才调,你想嘛,函数内部调用自己,那不是个死循环吗?是不是,你看手里。就出了一个错误叫range error range什么意思了?超过一个范围的意思,范围的错误,什么叫范围的错误了?呃,它的这个函数内部调用自己,它是有一个次数的限制的,能懂不?你看他的描述啊,最大调用站的一个大小超过了能听到吗?
10:05
比如说你这样函数里面调函数,函数里面调函数,这个嵌套的层次,我是有一定的什么限制的,历已经什么超过了我这个限制,是不是超过了我能承受的极限值,那我就会报一个什么。是不是超出范围的限制的一个错误,能看到吧,能看懂啊。也就是说大家以后啊,看到一些错误,大家一定要注意左边的这个是什么样的错误。不能仅仅还像以前一样,只看这个,而不看它的内。能不懂,嗯能懂好行好,这个呢,我也给大家注释一下,下面一个呢,是语法错误,我随便来一个啊,随便来一个啊,比如说constant c吧。
11:00
啊,但工具已经发现了,不用管它啊,工具已经发现你这个写法不对。这想说什么呢?我想写一个,写一个包含空串的一个串。正常情况应该这么写。或者外面有单影,里面有双影,能听到不啊,但是呢,我我就这么写了。是吧,那这个时候其实工具发现问题啊,我们来看一下浏览器能不能发现问题。是不是发现了问题啊,这个呢说的是语法错误。啊,语法错误啊。那如果翻译过来是不希望的一个字符串,比如说你这个字符串的格式不对,因为外面已经有双引号了,里面再搞双引号它收不了。能听懂吧,啊,那这就是个语法错误。那当工具发现了,那是不,那是工具做的事情。那这样我们是不是把内置的一些常用的错误给大家去过来过,对不对,最最常见的是前面两个,一个是reference error,一个什么呢?Type error是最最常见的,而且这种错误非常常见。
12:13
你只要写代码,你一天下来肯定会遇到那么几次。不仅是学习的过程中,开发的过程中,也会。没关系,其实出错是很正常的,当然老师我能不能保证,你告诉我怎么样保证我干一天活我不出错,那除非你不干活对不对?有人说老师估计是我不是大神,大神就不会出错,大神他也出错啊,只是他逃得快。听懂不一眼就能看出来是什么毛病,只是出乎大意导致的是不是?那对于菜鸟来说就不是出乎大意的问题是他本身就不会对吧?啊,这没什么问题了吧,没问题啊。
我来说两句