ImageVerifierCode 换一换
格式:DOC , 页数:4 ,大小:52.50KB ,
资源ID:774197      下载积分:10 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-774197.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(程序调试方法.doc)为本站会员(创****公)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

程序调试方法.doc

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个工作日内予以改正。