00:00
那我们现在已经知道了一些内在的错误了,那下面就要说一个事情啊,错误啊,我出了错误怎么处理,你要知道我不处理有什么问题,出了错我不处理程序就没办法什么继续向下执行。是不是这意思,那如果程序出了错,我想做一些提示,那是不是得向下执行才才能有机会提示啊,那这个时候就涉及到我们要去干嘛,前面说过一个。捕获错误。用什么?当然还有一种错误处理叫什么呢?抛出错误,刚才是不是他内部的语法错误,我自己能不能抛错误了。可以,我们如果比如说我要做些什么事情,我发现条件不够,我想我就可以干嘛呢,抛出个错误出去,让外部做一个处理。我不知道怎么处理对不对,但是我是不是通知外国,等我抛出一个错误出来,他去补货是不是就能知道了?
01:05
也就抛出错误,是不是相当于是一种通知的方式?也就是说我们现在写代码出了问题,他抛出了错误,实际上就告诉你哥们,你出错了,你得赶紧处理啊,是不是他要抛错误,我知道这个程序错了吗?我是不是就有可能不知道啊,所以我们下一个要做的事情。是要去啊,知道怎么样去处理错误。那处理错误呢,我们说过了,就有两种是吧?啊,一种呢是叫补货错误啊,一种叫啊抛出错误来补错误,举个例子啊,我随便来一个我们刚才出错误的代码啊,刚才错误代码啊,假设我写一个吧。啊,哪一个let一个let一个D啊,我没有我没有给它赋值,但是呢,我现在把它当成对象去使用,那肯定不行啊是不是,那我应该怎么做呀。
02:05
啊,是不是得TRY来踹一下是吧?把这个有可能出问题的代码是吗?塞在这个串里面是不是,那一旦这段代码里面有任何代码出了问题,抛出了异常,那我应该怎么做开启是吧?那开启的时候是不是开启到一个什么I,但具体是什么用管吗?不用,我开始也不知道是是不是,我就统一写个名字,其实在JS里面不用生明类型是不是啊,那我现在是不是可以去打印输出。输出这个error对不对?关于这A是一个什么东西呢?它是一个对象。能听懂吗?那对象里面应该是不是有些东西,或者说叫有些属性,那到底有些什么属性呢?啊,我们是不是可以去看呢?啊来。
03:03
刷新一下,关键我这样看得出来,这个打印就是我刚才写的这个打印。只是说他我打印这个对象的时候,他是不是调用它内部的一些东西来显示了一个文本内容,我还是不知道这个这个error是个什么玩意,我用什么样的策略能知道这个艾到底里面有什么属性,或者有什么方法之类的东西了,对不对?哎,这里面就有一种搞法叫debug调试。你比如说我在这里面打一个断点是吧,走一把。就到这来了,那现在我把这个光标放在这里。我问大家啊,大家注意啊,它这个显示的时候,注意它这个显示最上面是不是显示个type error,这个显示的这个type说这个就是type error吗。这显示的是什么?这个开牌跟error什么关系?
04:02
这一个是显示我这个对象的类型名称。也就说白了,我这个对象是什么类型呢?Type类型,你的type是不是我这个类型的名称?能听懂吗?而里面显示的是什么?是我这个对象里面的什么属性,而刚才我打印输出,实际上打印的是不是它默认是不是输出的是的这个字。看到了吧,然我们有时候不需要这么多,我们可能只需要取下什么message,也就是说我现在是不是知道了那个error对象里面有两个属性,一个叫message,一个叫什么step。来,那我就可以说,哎,我不打印error本身我去打印什么呢?Message各位可以吧,我去打印它的什呢?Stack就这样的意思,就一些信息来这个时候。啊,不要这个锻炼了。
05:03
刷新一下。大家看到首先ma是不是这个值,是的内容sta是不是也是个文本,而它是不是记录了你那个出错了一个位置。你还没点过去。能看到吧。啊,那也就是说我们现在应该知道了啊,Error对象里面默认是不是有两个属性,一个叫MY,一个叫什么sta,这是一个提示文本啊,这是一个我们相关包括提示文本以及相关信息的一个文本,这个文本内容会多一些是吧?能记录你的调动执行的一些信息。那也就是说啊,我比如说我下面还要做些什么事情,我能不能做。这是不是出错之后能不能做人,他能继续下去,因为我那个错误被我什么是不是补货处理了。
06:06
能听懂吧,可以,这没问题吧,没问题,那现在说的是我们程序出了错,我怎么样去补货处理是不是,那还有一种情况,刚才说了啊,我有可能自己手动,我主动的抛错,能听到不,刚才所有碰到的是不是都是。原生的程序他应定的错误了,不是我主动抛的错误,对不对,我可没主动抛是吧,我能不能抛了能。怎么抛来看一下,比如说我现在呢,有一个函数去做一个什么事情去了啊,做某件事情啊,Something啊,某件事情去了啊,也不要参数啊,我做的这个事情呢,它是如果当前时间是基数,就可以正常的做。能听懂吧,如果当前时间是偶数呢?我就不能做了。
07:00
能不听懂,但是我不能做了,得让外部有一个什么。有一个提示,我不知道怎么提示,由外部来提示能听懂不,什么意思呢?看好了啊,看好了1DATE。魔。啊,如果它等于一,我们说为奇数,是不是可以正常的做,能理解吧,好来,也就说当前时间为基数,这是我设计的一个一个业务啊,为基数可以啊,执行工作执行任务OK吧,那关键是进入爱好了,爱好是是不是当前是因为偶数,我做不了,能听懂吗?但是我做不了怎么提示我不知道,由外国调用者来去决定。能听懂我的意思不,那这个时候我的办法是什么?使用一个是不是L对象,那我怎么产生L对象呢?又一个什么?艾注意我们在抛异常的时候,都只仅仅一般都是去整这一个类型,不整下面这些类型,能听懂不?
08:13
说白了是我们的业务是不是有问题,我们逻辑是不是有问题是吧,所以我去用的是我们自己用用I,而他们用是不用具体的。有内部用用具体的我们只用error就行,能不能看到好,那这个时候我是不是注意啊,这个L6的时候,它需要传一个什么呢?Message。那我会说什么?当前时间为什么偶数对不啊,无法干嘛执行啊,任务能听懂不?那至于我这个是我给你的一个提示文本,至于哎,放到里面去了,于你怎么提示,你是打印输出了还是A的,还是弹一个框,还是怎么着,那是你的事,这个我没法决定能听懂不?
09:08
好,这个时候我们就干嘛去,是抛出异常。干嘛呢?由调用者来什么处理?是吧,我处理不了,来看一下试一下,那我下面干嘛去,是不是执行调用,对不,但是这个执行调用是不是有可能异常,我应该怎么做。我应该怎么做?这一个函数内部是不是有可能泡异常的,那我应该怎么做,是不是不会异常,是不是不会处理异常,怎么做?帅把这个给他是吧,挪到上面去对不对啊,挪到上面去诶。
10:05
挪到上面去以后,我下面还要写个什么,是不是写看看启一个什么,还有名字,这个名字可以我写个一行不行行没有问题,只是这个名字稍微好一点。那我是不是要做一个取出它的信息来做一个我想做的提示,比如说我来一个log行不行,我来一个A乐行不行,这是我的选择吧,而且我在不同的位置可能做不同的选择,对不对,能不听懂点什么?那这个时候我们来看一下。哎。它保存了一下,点一下。当前时间为基础,是不是执行任务了啊,我们再说一下。什么意思?当前时间啊,是为偶数,无法执行任务,这是我做的一个aler的题是吧?当然我也可以去显示其他的效果对不对?至于显示什么效果是不是得我自己来决定,调换者来决定,如果说它本身内部就能决定怎么提示的话,那就没有必要抛异常了,是不是?
11:20
看不到,嗯,行。那这样的话我们就应该知道了啊。我们的错误处理有两种,一种是呢,我们可能去补货处理异常,当然也可能我们自己去干嘛去抛出一些异常。让下一级是不去处理。能听懂不,而我们的错误对象是error对象,它是不是两个属性,一个是message,一个什么sta,我们一般会去取message的数据,去做一些相应的显示啊,提示啊等等操作是吧。陈哥,应该没什么问题了吧,啊行。
我来说两句