00:00
啊,我们创建命名空间的API呢,已经写完了啊,并且我们在测试的时候呢,它也已经能够真的创建出一个对应的命名空间,所有的功能呢,也都已经设计完善了啊,那接下来呢,咱们就要回过头来考虑这个异常处理的问题了啊,在实际开发里面我们都要考虑到这个问题对吧?异常处理的问题啊,那现在这个异常处理呢,咱们根本就没有处理啊,选择了全部给他抛出去啊,那这个抛出去会不会造成什么问题呢?啊,这个肯定会有的,你只需要再来点一下创建你就知道了啊。我们已经创建过艾特硅谷这个命名空间了啊,已经存在的命名空间,我们再次调用方法,Create name space创建命名空间,看一下会发生什么情况。啊,等待它获取连接对吧。好,首先呢,它会给我们报一个异常啊,这个异常呢,倒是意料之中啊,因为它上面会说叫这个命名空间它已经存在了,对吧?哎,叫name space at,硅谷already exist啊已经存在了,我们关心的问题是什么呢?你往下翻,往下翻一直翻到最后你都会发现它没有打印这个其他代码,说明什么呢?说明你创建命名空间这一个动作由于异常没有处理,往上面一直抛,结果把整个GVM给干停了啊,GVM都挂了对吧?就因为你一个创建命名空间没有停止,这时候你就反应过来,回过头来你要去处理这个异常了啊,处理这个异常了好,处理这个异常我们要本着什么样的原则呢?啊,就是说哎,我我是不是要让这个方法就不抛异常呢?啊,全部给它解决掉呢,啊,应该本着一个什么原则呢,这里就给大家介绍一下啊,你要考虑到它的一个合理性啊,这。
01:51
好像有点废话对吧,那这合理性指的是什么呢?在这个方法里面,你如果把这个给删掉的话,你会发现它有三个地方都会报异常,获取连接的时候,创建创建命名空间的时候和关闭连接的时候啊,咱们要考虑到合理性的就在于这三个异常。
02:08
哪些是属于当前方法的,哪些是属于别人的,这个东西就有,就有点说说不好听点,就有点像公司里面的人啊,呃,你在考虑这个出错了谁担责任的时候,你你首先要考虑这个责任是不是自己的,如果是自己的话呢,主动一点对吧,如果不是自己的话,你应该学会把他再交给别人去做啊,交给别人去做,那这三个里面大家觉得哪个是。你的一个责任呢,哪个是这个方法create name spaces的一个责任呢?啊,那我觉得相对比较合理的设计呢,只有这个啊,只有这个也同时呢,能够印证一点,创建命名空间的时候报的异常,如果你把它给抛出去的话,它是极其不合理的。它不合理的点就在于命名空间已经存在,这是一个非常微小的一个事情。你说创业命名空间已经存在,这影响你整个程序的运行吗?我觉得是不影响的,它已经存在意味着你直接用不就好了吗?
03:02
对吧,它是不影响你后续的一个正常使用的,所以这个地方你就不应该把这个异常给抛出来啊,不应该抛出来,这属于你当前方法需要去处理的一个东西啊,我们首先在这里写一下,对吧,叫创建。啊,命名空间出现的啊。问题啊,都属于都属于本方法自身的问题啊,不应该抛出啊,抛出啊你是不应该抛出的,那不应该抛出怎么办?Al加in特尔给他诶又给他抛出了,Al加in特尔选择这个try catch对吧?应该给他补货啊,应该给他补货,在补货完了之后呢,你还可以在这个地方不要让他去打印占追踪了啊,你可以让他不打印占踪啊,但是我们的推荐不要去管这个占最踪,我们在看日志的时候啊,能看到战队中心里呢,会感到一点这个有有着落了,对吧?哎,一直看不到战队中呢,总感觉哎到底哪出问题了,直挠头啊,头发都掉一地,也不知道问题在哪,我们一般不会去关闭到这个东西啊,在此之外呢,我们还会通过打印日志的方式啊,因为这里呢,只是一个测试案例,咱们就不通过打印志了,直接采用控制台输出的方式啊,我们会给他写一个中文的注释啊,它可能出现什么问题呢,叫。
04:18
命名空间已交。啊,已经存在对吧,它上面获取连接没有报错,那获取连接就不会有问题,它可能的问题呢,就是这个命名空间已经存在,你直接打印一下就行了啊,这个战略呢,推荐保留下来啊,不要去把它给删掉,我们看起来要更清晰一点,好,至于这个连接有问题啊,至于这个连接有问题,那我觉得呢,这不属于创建命名空间的问题。啊,这属于连接获取就有问题对吧?连接获取问,那连接有问题,创建命密空间能不能解决呢?解决不了对吧?那像这种问题呢,你就应该它给抛出去啊,就应该把它给抛出去,如果连接有问题的话,那我把整个进程就创建并行空间,这个进程给断掉也是合理的啊,你可以想象下,连接都创建不了,你还让我创建命运空间对吧?这不是这个方法的问题,你可以把它给抛出去,抛出去在哪处理呢?在这种位置啊,调用这个方法的位置去处理,它应该先保证。
05:16
也可以写一下对吧,啊应该先。保证啊。保证。连接没有问题啊,再来。调用。相关的方法对吧?啊,我始终这个创建名同学都会有一个连接的问题啊,连接呢,你应该自己去保证,然后再来调用我这个方法,而我自己的问题呢,我已经在内部解决了啊,不会影响比的代码的一个运行,好,当你处理完这个异常之后呢,再来去运行。你再来去运行的时候呢,它就跟之前不一样了,对吧?哎,创建并行空间这种自己的问题呢,它就会给它解决掉,如果连接出问题的话,这个连接出问题啊,咱们不太好模拟,你只要保证你的I是正常的,它这个连接都不会有问题,对吧?啊,你故意让它搞坏了,那那整个它就不会运行啊,在最开始的时候呢,它就会呃,出现点状况,咱们就不演示了啊这里呢,如果是创建命名空间啊,出现异常的话,我们来看一下。
06:15
他会打印啊,命名空间已经存在,并打印一个其他代码,对吧,因为它是多线程打印这个战队中的,所以战队中跑到了后面啊,但这个其他代码呢,还是能够打印出来的啊,还是能够打,相当于呢,它不影响别的代码的一个正常运行啊,不影响别的一个正常运行啊。好,这是我们在开写这种二次开发底层API的时候需要注意的点啊,就是相关的这些。呃,抛异常的问题啊,你也需要给他设计的非常的合理啊。
我来说两句