学习笔记之eclipse IDE debug的思路

Java程序的bug分为三类.第一类,JDK及第三方依赖代码的漏洞.极少,可以忽略,也不在此文讨论范围之类.第二类程序员自己完成的代码存在行为错误.第三类,程序员产生的错误数据被JDK或者第三方依赖代码捕获.

第二类bug,依赖断点调试和自定义异常的方式可检出.好的代码健壮性的编写习惯,和增加对可靠且被充分理解的第三方代码的依赖可以显著降低这种bug的出现,对于偏向上层开发的Java而言,这种bug不是重点和难点.

第三类bug,是问题所在.这种bug分两种:第一种,错误的数据或者数据的丢失导致异常的出现.第二种,对依赖代码的认识不足导致不可预知的结果.解决或者回避第一种bug的方式首先是做系统兼容性的检查.硬件==>操作系统===>JVM==>classfiles{jre code,customed code}.操作系统和JVM的冲突很少,不讨论.由于JVM和JRE往往在统一的环境中运行,所以JVM和class文件的冲突集中在JVM和用户代码的之间.典型的问题比如class文件版本标识过高,导致classloading failure.保证jar包要求的JDK版本是必须的.但是最让人头疼的问题是第三方依赖(jar包)的冲突.总结方法如下:在保证所有必须的class文件和source文件版本一致的基础上,发动测试程序,当测试程序的异常线程终止的时候,通过控制台信息找到异常的位置,异常调用printStackTrack()方法打印线程方法栈,栈顶就是异常对象被创建的代码位置,代码的位置是通过.class文件中的方法名和line number确定的.这就是为什么source文件的版本一定要和class文件一致的原因,如果不一致则class文件中报告的位置和源码就会不一致,如果找不到一致的源码则需要查看方法体的方法确定异常的位置.这种情况造成的混乱会使得程序执行流程变的不清晰.所以最好的方法是保持两者的一致.异常栈中往往会出现嵌套异常(nested exception),往往由caused by关键字引导.尽管嵌套异常栈在代码层面上讲也仅仅是报告嵌套异常被创建的位置,但是一个合理设计的代码中嵌套异常往往是bug发生的真实原因所在.关于异常的查看和debug方法在以后的日记中讲..

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值