小蝶

提升解决BUG能力的重要性 - 码农秃头之路
如果有人问一个程序员,在你每天的工作中,你最不希望发生的事情是什么?我想大家的答案都是一致的,就是“自己写的代码不...
扫描右侧二维码阅读全文
05
2019/03

提升解决BUG能力的重要性 - 码农秃头之路

如果有人问一个程序员,在你每天的工作中,你最不希望发生的事情是什么?
我想大家的答案都是一致的,就是“自己写的代码不要出现BUG”。
在网上找了几张图,这些图足以证明程序员在任何时候都是不希望看到BUG的!
图片1.png

图片2.png

图片3.png

图片4.png

  • 好了,相信大家也能够从目前我们的学习中感受到,如果自己能够快速的解决BUG,那是多么的爽快。
  • 否则,每天会在和众多BUG的混战中痛不欲生。

解决BUG必会的知识

最初,在我们刚开始学习编程的时候,BUG在我们印象中就是各种异常,就是在控制台中打印出来的一堆异常信息,所以,我们要想能够解决BUG,首先要弄清楚的就是什么是异常,我们常见的异常都会在什么情况下会出现,下面我们就来捋一捋。

常见异常:

算术异常类:ArithmeticExecption
空指针异常类:NullPointerException
类型强制转换异常:ClassCastException
数组下标越界异常:ArrayIndexOutOfBoundsException
文件已结束异常:EOFException
文件未找到异常:FileNotFoundException
字符串转换为数字异常:NumberFormatException
操作数据库异常:SQLException
输入输出异常:IOException
方法未找到异常:NoSuchMethodException

Snipaste_2019-03-05_22-43-15.png


在想要解决BUG之前,我们应该先静下心来,把我们的代码中常见的异常及其可能出现的原因搞清楚,然后再谈解决的问题。
这就如同,医生想要为病人治病,他得先知道都有哪些病症,以及各种病症需要用什么药,什么方式去治疗
然后再去为他面前的病人选择合适的方式进行治疗,不然就成了庸医了,我们找BUG是一个道理。

如何解决BUG

不同的bug解决的方式手段不同,那么我们需要在解决的过程中不断的去收集和总结
达到遇到bug能够快速的选择合适的方式来解决,不然会出现事倍功半的问题。
我们大致也可以经过“望闻问切”的步骤来解决。

  1. 查看控制台打印的异常信息,从中得到异常类型和异常的描述信息
  2. 根据异常类型和异常信息分析出程序出异常的原因
  3. 根据异常栈信息定位程序出错的位置
  4. 将代码和上面分析得出的异常原因综合起来,最终找出问题代码并解决

如果代码比较简单,我们全程可以通过肉眼观察和打印的方式解决BUG
如果代码逻辑比较复杂的话,此时我们可以借助开发工具中的debug调试工具来解决BUG

debug断点调试

1、设置断点
在程序里面放置一个断点,也就是双击需要放置断点的程序左边的栏目上。

2、调试
点击"打开透视图"按钮,选择调试透视图,则打开调试透视图界面,然后先设置断点,按调试按钮则可以调试程序。
或者直接点击调试按钮,那个虫子样子的按钮,然后就会进入调试透视图的界面。前提你需要是要在程序中设置好断点。
或者右键单击该程序,选择debug as(调试方式) -> java application(Java应用程序),则可以调试程序了。
前提你需要是要在程序中设置好断点。

3、调试快捷键
以debug方式运行java程序后
(F5)单步执行程序,遇到方法时进入;
(F6)单步执行程序,遇到方法时跳过;
(F7)单步执行程序,从当前方法跳出;
(F8)直接执行程序。遇到断点时暂停;
按F5就是一层层深入的debug相当于剥葱样,会进入每个方法内部
按F6就是在当前函数一步步debug,不理会深层次运作
按F7就是如果当前进入了某个方法内部,都跳转到该方法的结尾代码处
按F8就是如果后面还有断点,则运行到下一断点处,否则运行完程序
另外在debug时,会有很多有用信息显示在debug框里,如堆栈信息,需要自己实践
在程序界面里,鼠标移到变量上时会有当前变量的属性值

本文来源于我老师的课件,如有侵权联系博主删除


本文标题:提升解决BUG能力的重要性 - 码农秃头之路

本文作者: 好蓬友

本文链接:http://ligeflag.cn/archives/43/

版权声明:本文为原创文章,©版权归 好蓬友 所有,转载请注明出处!
Last modification:March 5th, 2019 at 11:04 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment