00:00
啊,假如说啊,这个呢是数据输入,这是输出在输出的过程当中,哎,这个地方突然不管是中间吧,这可能是中间这个过程啊某一个位置,但是呢,这个输出这个位置。抛了一个异常。这走不通了,代码到这就停了。那你怎么去查的吧,怎么。打断你是吧,那打断你往哪打?就打他手腕,这地这地方一定要打。那还在那打。用不用在在后面的。后面不用对吧,后面不用,那我告诉你,你就给我盯着这里面,到这行出错了,他的数据源来源于哪。比如说刚才啊,有个同学有个bug,我简单。模拟一下啊。呃,到这个后这儿。能理解吗?
01:02
啊,那就这么一个办法啊,大家也容易容易出错。那么这个如果说抛了异常之后,你怎么办?怎么去分析,我们稍微运行一下啊,看看这个效果。来一个二吧。发异常了,充值。发了通知,那你怎么去查这问题?那那你看看这这提供的信息,你能找到什么什么情况。在这是吧。在哪?上面这。这。是这吗?那到这儿了,那到这儿之后,那你发现他,他说有有一问题。哎,那这肯定要打断点对吧。
02:02
那这就是你爸爸这要打的点。没没啥说的吧,哎,如果说你通过这个信息当中,你没有看到说,哎这这地方要打断点,那怎么办呢,我给你。呃,第一直觉。要干什么呢,你看你这么几个类。一共这么几个类对吧?啊有driver,有map里面用不用拿断点。而且啊,千万不要在在这上面打字,在这上面打字有任何意义吗?没有任何意义啊,不要不要不要在打断点,你不要在打断点,就顶多你可以在这打断点,而且在我可以告诉你,你你们目前阶段这个写的代码在这打断点没有任何意义,他就是一个提交流程,把你上面这些信息提交上去了。他不会在这里面去报错的啊,报错呢,也是因为你外面的东西去影响他才会报错。28的,那你还剩下四个类吧,对吧,四个类外进来之后,因为你不知道这个异常放在哪了,这肯定要打一断电。
03:05
进来ER,这里面上来。也放一个断点。不用管他,他他走不走到这儿先不管啊,先来一个,然后这个范小不干的,这里面进来。上来要来一个,然后这个。初始化的时候。你可以来一个。当时我就打到这儿的时候,我一下就发现这个问题了。啊,这这假如说你没发现啊,没发现,那下面这这肯定要打一个,因为nice t6呢,这里面有大量的这个业务逻辑。你肯定要追踪对吧,好,那基本上这几个类我已经全覆盖了吧,哎,全覆盖好回到这。到这儿就见一下。右键意见。
04:01
夜伸之后第一步他就来到了这,对吧?啊,来到这,来到这,往下走呗。八线到这,哎到这儿到这儿你你看到这个黄线,假如说你这个眼色不好是吧,不知道这有个黄线没问题,继续往下走。这边走了吧,是吧,这一种。继续找到record往下。像这些系统代码,它不可能出问题。有问题的,就是你写的这个代码,导致这个信用代码出问题了啊。再往下。是不是到这了啊,到这之后你往下看啊,这往下读了吧,读到这是不是咱知道这个这方有问题啊,那假如说你不知道往下走。看好看好啊走。你会发现很奇怪,突然间飞了是吧,哎,待会飞了,不是按照我们正常套路走的,走到哪往往下走对吧。那这行就有可能有问题。
05:00
对吧。飞了。你不觉得他有异常吗?他正常读完这行,他不往往下走吗?对吧,而且我问的是我摁的是这个吧,下一行吧,哎,好,那你就发现这一行有问题。那继续玩走吧。哎呀,飞的很离谱。又回来了,这是下一个这个map啊,又一个,那这下。哎,又来到这,来到这之后就到这儿看我往下一走就飞了。对吧,那这行肯定有问题。那肯定有问题,哎,大家也知道,哎,我到这儿了,然后就束手无策了。就在这行代码应该没有问题。第一直觉对吧,哎,我告诉你,你要给我盯着这个数据源源头啊,是这样的啊,比如说定位到这一行有问题。那你就捋着这个这一行往上找,往上找,找什么呢?找这个数据怎么来的。
06:03
这个数据哈,你们现在这个涉及到这个代码,代码量都不够大哈,啊,也就这个几个类就完事了,你真正在项目开发中,那可能几十个类,甚至几百个类。怎么办?你要初步知道它这里面,比如说前面有20个地方。对这个数据进行了一个修改。大大工程肯定有这种可能的啊,之前我就调过啊,甚至都不止20个。那怎么办?从这到这,也就说从这个进这个数据进入到你这个源头开始,到这儿发现了异常。啊,发现了问题怎么办?二分差的。往往就是二分查找。比如20个地方,那我先找中间第十个位置,这个位置我。查bug到这儿。你说前面这个数据到这儿的时候。排是否是正确的?如果说前面到这数据是正确的,那说明什么问题?数据在这个在这个位置出问题了,对吧?啊这这出问题了,那我在这在二分。
07:06
那假如说这地方,哎,到这就已经出问题了,那什么办法。哎,是不是在这个位置啊,那前面站。啊,这是你清楚非常清楚的知道这条数据线的时候,那就要这个采用二分杀导的速度会非常非常快啊,帮你去定位这个问题啊,这是这种,那像这种简单程序那更简单了,直接向上去找它的数据输入源,那你说这个con在哪。那把找呗,往这一放。你看是不是在这儿呢?在这,那它又是怎么来的呢?你们来找吧。哎,直接一发现这。根本就不是一个对象,根本没有碰见他。啊,就这么去查哈,包括如果说这地方还没有,那你就再往他的上一级再找。啊,他的商机在哪呢?
08:00
在这儿的再往上。啊,等等那一看这到头了啊,这个是bug比较比较简单,比较浅显。但是这个方法很重要啊,一定要学会这个,如何去查这个。而且二分查找的这种方式是一。一定一定要会的,逐渐去缩小这个bug的范围。最终定位到一个非常小的一个点上。否则的话,你遇到这个我告诉你啊,你去单位看的最多的什么呢。你看左侧这一类,就假如说假如说这些是真正代码啊,我跟你说企业开发就这样。上了100个类往那一放。完了你直接就删了。有啊,你看上一关那是。90115啊。他的薪资待遇很高啊。呃。将近30K。有点挤吧。然后去了公司,那都都把他当大神一样供着是吧。我看他把那代码给我了啊,老板上去给他两个任务的活,那左侧这个类。
09:04
比这都多。他上来他就晕了,不是你。你看鱼啥呀,这么多类。跟你有关系的其实没几个。跟你有关系的包也没几个。对吧,呃,你先定位好你这个业务到底在哪一个类里面,然后打开啊,打开进去之后,沿着数据线,你们一定要给我记住这个数据线,这个数据到底从哪来的,他去了哪。在这个数据来的过程当中,经过了几个类或者几个方法对它进行修改。全部标记出来。之后其他的那些类跟你任何关系都没有。啊,你就关心影响你这个数据走向的。啊,这是这个哈,后面还会慢慢的给你们去渗透啊。
我来说两句