欢迎来到天天文库
浏览记录
ID:21379829
大小:52.50 KB
页数:4页
时间:2018-10-21
《程序调试方法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、程序调试方法李应洪2005-8-12一、CommConstants.java文件的写法,里面注意按模块写。‘是’和‘否’用‘1’、‘0’二、Tomcat无法启动,先查看log,也行是java文件未完全编译,也有可能是web.xml或者Config.xml文件配置问题。三、Java程序1.在发生异常的时候,我们是先尽快定位到关键的地方,如找不到,先不要急于每个方法里面去单步跟踪Stepinto,而是先在几个自认为可能出错的程序段上Stepover,肯定会找出是某个段出现问题,然后在逐渐细化。2.调试主要
2、看一下几个关键点:设置断点Breakpoints,查看变量Variables,添加表达式Expressions,查看控制台console。3.设置断点:一般是在关键地方设置断点,先找到关键点,然后将该关键点细化;再在关键点里面设置断点,依次找出Bug。4.查看变量Variables:在程序运行的当前java类里面,可以查看该类里面的任何属性(包括Entity,Entity又有属性),这样一层一层的查看参数与变量的值。5.单步跟踪到每个方法里面Stepinto,跟踪某个语句Stepover,跟踪某方法侯
3、返回Stepreturn。6.添加表达式:表达式其实是属于变量的一部分,当你想关注确定的变量的时候,可以通过添加表达式来调试更为直观。7.查看控制台:控制台是我们找出Bug关键点的平台。在控制台里面可以直接定位到某个文件的某个具体的方法或者某个语句,而且可以在控制台直接链接到对应的语句去。8.Java文件的错误除了了在控制台会出现外,在Jsp页面还会出现。在Jsp页面出现的Java文件的错误,也会表现的页面,同时会指出出错的地方。定位到行代码。9.Java程序出错频率最高的地方:1)空指针NullPo
4、int,当一个class或者变量为null的时候,如果你在调用它的方法,系统会抛出空指针异常。一般会有:a)rkdBiz=(CC_RkdBiz)BaseObjectFactory.getBaseObject("com.iss.scm.sample.bizlogic.CC_RkdBiz");如果rkdBiz=null,再rkdBiz.insert();就会出现异常。因此,需要先再ClassFactory.xml文件里面先配置实例化文件。b)CC_RkdEntityrkdEntityTemp=this.s
5、electRkd(conn,ryEntity,rkdEntity.getRkdID());if(rkdEntityTemp!=null){//组织数据rkdEntityTemp.setGysMc(rkdEntity.getGysMc());}c)for(inti=0;i6、应的属性SequenceNoSeekersequenceNoSeeker=newSequenceNoSeeker();rkdEntity.setRkdID(Long.valueOf(sequenceNoSeeker.nextSequenceNo(conn,"BIZ_RKD",null).toString())如果没有再Sequence.xml文件里面配置sequence就会抛出空指针异常。a)//入库单主单实体privateCC_RkdEntityrkdEntity=newCC_RkdEntity()7、;在Form里面如果定义一个实体的时候,没有new的话,在Jsp页面上使用会抛出空指针异常。b)//物资编码privateString[]strWzbm=null;在Form里为了组织Jsp页面提交的数据,定义数组字符串,如果得到的数组为null,再使用rkdEntity[i].setWzbm(strWzbm[nIndex]);就会抛出空指针异常。因此,再Form里面8、定义的数组命名必须与Jsp页面使用的一样。比如:Jsp使用那么:Form里面就得String[]strRkdMxBh=null;2)SQL异常,肯定都是Dao里面书写错误。a)字段的个数与“?”的格式不等b)缺少或者多“,”c)缺少或者多“(”d)Dae类型的字段忘记了to_date(?,’yyyy-mm-dd’)e)sbWhere
6、应的属性SequenceNoSeekersequenceNoSeeker=newSequenceNoSeeker();rkdEntity.setRkdID(Long.valueOf(sequenceNoSeeker.nextSequenceNo(conn,"BIZ_RKD",null).toString())如果没有再Sequence.xml文件里面配置sequence就会抛出空指针异常。a)//入库单主单实体privateCC_RkdEntityrkdEntity=newCC_RkdEntity()
7、;在Form里面如果定义一个实体的时候,没有new的话,在Jsp页面上使用会抛出空指针异常。b)//物资编码privateString[]strWzbm=null;在Form里为了组织Jsp页面提交的数据,定义数组字符串,如果得到的数组为null,再使用rkdEntity[i].setWzbm(strWzbm[nIndex]);就会抛出空指针异常。因此,再Form里面
8、定义的数组命名必须与Jsp页面使用的一样。比如:Jsp使用那么:Form里面就得String[]strRkdMxBh=null;2)SQL异常,肯定都是Dao里面书写错误。a)字段的个数与“?”的格式不等b)缺少或者多“,”c)缺少或者多“(”d)Dae类型的字段忘记了to_date(?,’yyyy-mm-dd’)e)sbWhere
此文档下载收益归作者所有