记一次debug经历,基础的重要性

在写一个项目的注册模块的时候,发现问题如下:
当第一次注册失败的时候,修改注册信息,重新点击注册,返回的依然是注册失败信息。图如下:
第一次注册失败:
这里写图片描述
第二次修改信息后:
这里写图片描述

debug思路:
1.使用了AsyncTask,会不会是多次调用了execute()方法导致的?

debug做法:
进行条件判断,如果task实例不为null,则先设置为null,再重新初始化
。用Log打印hashcode进行检测。问题没有解决:
这里写图片描述
log打印信息显示每次的task实例都有变化,但问题依旧存在。第一种思路宣布死亡。

2.取消注册成功后自动跳转activity的操作,观察注册成功后重新点击注册的的效果,显示注册失败,说明服务端没有问题。问题在客户端

3.debug思路 -》注册成功再点击,失败 。注册失败后修改信息再点击,还是失败 —-》传递的参数是否有问题

监测方法:用的是post方法通讯,在HttpUtils用Log打印三次不同的注册信息:发现三次打印出来的都是一样的。找到问题:
这里写图片描述

查看HttpUtils代码:
这里写图片描述
在这里,发现用的是Arraylist存储的参数,但使用的时候用了Arraylist.get(int)方法,意思为不管我王Arraylist里面存了多少个数据,每次作为参数传递的都只是前4个,(第一个参数定义了http传输方法)。于是,修改代码如下:
这里写图片描述

重新运行,问题解决。

思考:从这次debug可以发现,自身的基础仍是不够牢固,犯下了一个很是低级的错误,虽然最后是把问题解决了,但你永远不知道下一个bug在什么时候到来,祈祷吧。吸取经验,这个错误,下次不能再犯。同时,关于那些很难察觉的小坑,要多加思考和训练,最好及时避免。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值