00:01
好,那刚才呢,我们在这个地方展示的呢,是一个通用的异常叫服务器内部错误,但是呢,实际上在真正发生异常的时候呢,我们的异常的原因呢,可能多种多样,我们可能会希望呢,来展示一个特别具体的原因,所以呢,如果是这样的一个服务器内部错误的话呢,可能就会引起一些啊不必要的误会,或者是引起迷惑啊,所以呢,我们来看一看如何去啊,针对具体的异常展示具体的错误信息,我们给他定义特定的异常处罚,那么我们来看一下刚才我们这个服务器端报告的这个错误。我们服务器端报告的错误呢,实际上叫做。这呢,从最开始错误出现的地方啊,叫做JD bc bad circle grammar,就是spring framework JD bc这个包下面有一个类叫做bad circle grammar exception,它报错了啊,然后为什么报错呢?就是找不到这个列好,那所以呢,现在我们就要捕获这个异常啊,这个异常呢,它在JDBC包当中,所以呢,我们就必须得在这个common里面呢,把这个JDBC这个包先给它引进来,所以在当前的这个common这个里面,我们先引一个JDBC包。
01:15
把它引进来,然后这边刷一下啊,看一看这PC包有没有正确的引进来。好,这面我看一下啊,有了。好,这边就有了,有了之后呢,然后呢,我们来,呃,在我们的异常处理器当中。异常处理器在这呢,Unified exception handler里面呢,我们在添加一个异常处理方法。那这个异常处理方法呢?我们就针对刚才我们所说的bad circle grammar exception进行一个异常补货。所以就是它。好,同样下面这个地方也给它改成一致的哈,好,这个异常处理方法呢,专门针对这个类进行异常补货,好找到这个接口的这个呃注注解之后呢,那么这个异常呢,就会自动进入到这个方法来,那恰好呢,这个方法里面的对象呢,也是这样的一个类型的,所以呢,异常对象自动就被封装到了这个里面,然后在这个里面呢,我们就可以直接去打印这个具体的日志了,那这个就是原始的。
02:18
我们补货进来的异常对象在这个地方呢,可以帮助我们把具体的异常和异常跟踪站的信息呢,全都打印出来,然后这块返回给前端的结果呢,我们就不能是2.errorrrow了,因为如果是2.errorrow的话呢,就还是这个错误信息,所以呢,我们给它定一个特定的错误结果,针对当前的这个bad grandma circle exception,我们定义特定的错误结果,我们定义呢set result,而里面呢,我们曾经写过一个set result方法,而这个set result的方法呢,它可以接收一个具体的一个枚举,而这个枚举呢,我们之前呢,已经很多都定义在了当前的这个枚举当中,所以呢,我们可以用这个bad circle grammar error啊,它的返回码呢是负101,它的错误信息呢是色度语法错误,所以在这个地方呢,我们就可以在这个这块就写瑞bus em um啊,然后点by circle grammar a好这样就可以了,那接下来呢,我们重新启动一下这个服务。
03:36
好,这样的话呢,我们就把这个给家启动成功了,启动成功了之后呢,我们来还是刷新一下这面的一个呃,测试用例,看一看它的结果是什么,我们点as,然后大家看这面呢,已经变成circleq语法错误了是不是,所以这块呢,就是我们啊特定的一个异常处理啊。
04:00
好,然后这面这个特定的异常处理,我们写好了之后呢,我先把这个咱们之前制造的异常呢,给它还原回来。界面哈,那还原回来之后呢,与此同时大家可能就会想一个问题,就是如果我们系统当中有各种各样类型的异常的话,是不是我们在这个unified exception handler里面就要写很多很多的异常处理方法,针对每一个异常咱们都要写一个特定的方法啊,那如果按照咱们现在这个解决方案来看的话呢,确实是这样的,但是有没有更为简洁一些的解决方案呢?肯定是有的,我们呢可以自定义异常,让我们的这个异常呢更灵活一些啊,所以来解决比如说第一种方案它不灵活的问题,第二种方案它比较繁琐的问题,所以接下来呢,我们来看一看我们如何去创建一个自定义异常的。
我来说两句