java找错方法总结,一头程序猿与bug的战斗经验.

每个程序员时间用的最多的,不是写程序,而是找bug.网上关于具体某个异常的帖子,多不胜数,但是关于怎么找bug的文章,却寥寥无几.
本人抛砖引玉,把自己以前总结的一些找bug的小技巧写出来,希望大家多多补充指正.

1.搜索法:就是把异常信息放到网上搜索,这个是最常用,而且人人都会,就说明一些注意点.
一般是用第一个错误信息,有时也是最后一个错误,如果信息太长,把最能说明错误问题或者最与众不同的部分,放到搜索栏搜索,这个可以多次尝试

2.刷新法:这招简单粗暴,但是有用.在面对一些简单,但是找不到错误或者莫名其妙的错误时,可以尝试刷新程序,或看源代码.
因为很多错误,并不是代码不对,而是没有编译或者编译不对,没有加载等,反正找不到错误,就刷新尝试一下,万一解决了呢?

3.日志法:查看日志或手动system.out.println输出,确定出错位置

4.追踪法:使用debug模式,打上断点,查找错误位置.

5.查看法:针对某些特殊错误,classnotfind,
NoClassDefFoundError,这个错误可能是版本冲突,也可能是没有加载需要的jar,还可能是编译错误
那么可以如下方法确定:
(1)可以把出问题的类,放到程序中,看是否有这个类
(2)可以根据类路径找一下,程序是否加载了这个jar,或者类,或者类里有没有这个方法

6.列举法:把有可能的几种情况,挨个尝试一下,找出正确的方法
例如Struts2前后端传数据方式,让人有些眼花缭乱,比如取个name属性,可能的方式有name,KaTeX parse error: Expected 'EOF', got '#' at position 8: {name},#̲name,,{#name},还有各种标签和后端传数据的方式不同而不同,这就可以把每个方式写一遍,正确方式自然就出来了.

7…还原法:把程序还原到没有错误的时候,重新开始,这个一般就需要svn和git这种文件管理系统,不过没有,也一样可以按照这个思路处理

8.对比法:在网上(也可以是还原的程序)找同类型法的代码进行比较

9.排除法:先剔除一部分,可以是一个模块,或者一个类,也可以是一行代码,一个属性,然后逐渐缩小引起错误的范围,最终找到错误.

10.搜寻法:在一些由特定情况引起的错误时,可以在程序中搜索相关特定单词,查看设计是否合理,例如如果遇见nullException,可以搜索null

11,抽离法:把出错或者可能出错的代码抽离出来,建一个简单的例子,一步步尝试.特别是调用别人的代码时,一定要确定不是因为它而出现的错误

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值