程序调试方法.doc

上传人:创****公 文档编号:774197 上传时间:2018-10-31 格式:DOC 页数:4 大小:52.50KB
下载 相关 举报
程序调试方法.doc_第1页
第1页 / 共4页
程序调试方法.doc_第2页
第2页 / 共4页
程序调试方法.doc_第3页
第3页 / 共4页
程序调试方法.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、程序调试方法李应洪 2005-8-12一、CommConstants.java 文件的写法,里面注意按模块写。 是和否 用 1、 0二、Tomcat 无法启动,先查看 log,也行是 java 文件未完全编译,也有可能是 web.xml 或者Config.xml 文件配置问题。三、Java 程序1. 在发生异常的时候,我们是先尽快定位到关键的地方,如找不到,先不要急于每个方法里面去单步跟踪 Step into,而是先在几个自认为可能出错的程序段上 Step over,肯定会找出是某个段出现问题,然后在逐渐细化。2. 调试主要看一下几个关键点:设置断点 Breakpoints,查看变量 Vari

2、ables,添加表达式Expressions,查看控制台 console。3. 设置断点:一般是在关键地方设置断点,先找到关键点,然后将该关键点细化;再在关键点里面设置断点,依次找出 Bug。4. 查看变量 Variables:在程序运行的当前 java 类里面,可以查看该类里面的任何属性(包括Entity,Entity 又有属性) ,这样一层一层的查看参数与变量的值。5. 单步跟踪到每个方法里面 Step into,跟踪某个语句 Step over,跟踪某方法侯返回 Step return。6. 添加表达式:表达式其实是属于变量的一部分,当你想关注确定的变量的时候,可以通过添加表达式来调试更

3、为直观。7. 查看控制台:控制台是我们找出 Bug 关键点的平台。在控制台里面可以直接定位到某个文件的某个具体的方法或者某个语句,而且可以在控制台直接链接到对应的语句去。8. Java 文件的错误除了了在控制台会出现外,在 Jsp 页面还会出现。在 Jsp 页面出现的 Java文件的错误,也会表现的页面,同时会指出出错的地方。定位到行代码。9. Java 程序出错频率最高的地方:1) 空指针 NullPoint,当一个 class 或者变量为 null 的时候,如果你在调用它的方法,系统会抛出空指针异常。一般会有:a) rkdBiz= (CC_RkdBiz) BaseObjectFactory

4、.getBaseObject(“com.iss.scm.sample.bizlogic.CC_RkdBiz“);如果 rkdBiznull,再 rkdBiz.insert();就会出现异常。因此,需要先再ClassFactory.xml 文件里面先配置实例化文件。b) CC_RkdEntity rkdEntityTemp = this.selectRkd(conn, ryEntity, rkdEntity.getRkdID();if (rkdEntityTemp != null)/ 组织数据rkdEntityTemp.setGysMc(rkdEntity.getGysMc();c) for (

5、int i = 0; i 会抛出空指针异常。f) / 物资编码private String strWzbm = null;在 Form 里为了组织 Jsp 页面提交的数据,定义数组字符串,如果得到的数组为null,再使用 rkdEntityi.setWzbm(strWzbmnIndex);就会抛出空指针异常。因此,再 Form 里面定义的数组命名必须与 Jsp 页面使用的一样。比如:Jsp 使用那么:Form 里面就得 String strRkdMxBh = null;2) SQL 异常,肯定都是 Dao 里面书写错误。a) 字段的个数与“?”的格式不等b) 缺少或者多“, ”c) 缺少或者多

6、“(”d) Dae 类型的字段忘记了 to_date(?, yyyy-mm-dd)e) sbWhere.append(“ RKDBH “+ SqlReplace.sqlReplace(rkdEntity.getRkdBh(), SqlReplace.BLUR_SEARCH_VALIDATE) + “ and “); 象这样的也会出现异常。f) where 条件里面缺少连接符“and”等其实这些问题都是比较低级的错误,大家再 Copy 别人的代码的时候要千万注意,因此要求每个人再写 Sql 的时候统一风格,并写明注释。3) 查询得不到想到的结果a) Dao 里面指定的返回 Entity 和自己想

7、要的返回 Entity 不一致。如:objs = SqlUtil.parseDataEntityBeans(rs, “, “com.iss.scm.sample.entity.CC_RkdEntity“);或者 Entity 的路径写错,Entity 的名字写错,都会出现这种情况。这种异常不会抛出来的,而且再控制台打印出来的 SQL 拿到数据库去执行不会发生任何异常。一旦发生这种情况,需要先执行打印出来的 SQL,然后跟踪查询结果返回的Entity 是否有值。b) 查询出来了结果,但是 Entity 的某些属性(某些列)的值不是自己所希望的。可能是 Entity 里面的方法写的有问题,多数情况

8、是赋错了变量。public void setGysMc(String gysMc)strGysMc = gysMc;从数据库执行查询后,给实体赋值都是通过 Entity 里面的 “set”方法。c) 情况 a)、b)都没发生,但是 Jsp 页面就是去不到某个属性的值,这种情况就是“get”方法有问题,因为我们再页面取值都是通过“get”方法。d) 如果是 long、double 类型的属性,再页面没法取值,最有可能的就是没有重载“set”方法。如:public void setZt(BigDecimal dbZt)lZt = dbZt.longValue();e) 查询语句都是通过 sql 的

9、别名来赋值给 Entity 属性的,因此在写 sql 的时候需要写别名。f) 如果 pageLoader 出错,可能是没有取别名,也可能是 order by 方法的排序字段写错了(写成了该表中不存在的字段) 。这种情况需要跟踪到 PageLoader 里面去。调试方法:/ 得到 PageLoaderpageLoader = rkdBiz.selectRkdList(null, ryEntity, rkdEntity);/ 获取页面的排序方式pageLoader.setOrderBy(rkdForm.getRkdEntity().getOrderBy();/ 将第一页放到 FormrkdForm

10、.setRkdEntityArray(CC_RkdEntity) pageLoader.firstPage();先看 step over 到 pageLoader = rkdBiz.selectRkdList(null, ryEntity, rkdEntity);是否有异常,如没有;需要 Step into 跟踪到 firstPage()里面4) 出现业务逻辑错误或者赋值错误,这才是最难调试的 Bug。这种情况需要按照程序段来跟踪,不停的查看 Variables,进行单步跟踪。5) 在人为构造数据的时候,也要注意构造的数据是否合法,是否适合用来进行测试。同时记住构造数据后,要 Commit.6

11、) 在调试程序的时候,如果发生错误,仍然要把程序执行完成;以避免数据库的死锁。四、Jsp 页面错误1 出现白页先查看是否连接出错,或者 Config 文件配置错误。或者是 Jsp 页面上的“.do“文件指定错误还有可能是 action 里面的 Forward 路径有错。2 页面显示不全。基本上是因为页面 Tag 书写错误。或者是 html 标签不对应,少了和多了标签。因此希望大家在写 Jsp 页面的时候参照 sample 来写。其实每个 Jsp 页面都是有几个部分组成的,这些部分都已经有模板。当出现错误时,调试 Jsp 页面的可以一段一段调试。3 Jsp 页面抛异常可能是没有引入 Java 类

12、文件、css 、div 等。可能是 Entity 的属性在页面书写错误,大小写错误等。4 Jsp 页面还种最糟糕的错误。实现功能:循环显示明细数组,正确的写法:错误的写法:实现功能:显示主表信息,正确写法:错误写法:5 JavaScript 的书写和调试,大家使用的时候可以查参考资料,在 vss 上有。调试的时候注意alert()来查看。毕竟大家的 Js 不是很熟悉。6 大家一定不要在 Jsp 页面上去写自己的 Css:比如:height=25、class=” 公用方法外的”等五、一点建议1、 调试程序不是一天两天能锻炼出来的,是需要一定时间的积累。出现 Bug 后,我们不是只看着这个结果,而是要去分析为什么出错;需要自己去尝试解决问题,这对个人的成长是很重要的。2、 需要经常总结调试的经验,看别人是如何调试程序,在别人帮你调试的时候,也可以问问为什么要这样调试。3、 调试中一个很重要的东西就是要理解程序的执行原理,也就是我们使用的 MVC 三层结构。当然,在一个大型的项目中留给个人的时间可能太少,但是给每个人的发挥空间很大,因此希望大家在做程序的过程中不断学习成长。4、 建议大家在周末能查阅相关的书籍。比如:oracle、 struts 标签、struts 原理、js、jsp 、java 的帮助文档。参考资料见:vss 上“tarimof/多类参考资料”

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 公文范文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。