找回密码
 加入
搜索
查看: 3935|回复: 12

[AU3基础] 如果排除程序的BUG?

  [复制链接]
发表于 2011-2-14 02:18:43 | 显示全部楼层 |阅读模式
本帖最后由 imnebula 于 2011-2-14 02:23 编辑



我写的程序 ,用着用着,不知道什么时候就会弹出一个错误的窗口,提示LINE XXX(数字)。
这里的数字有时候往往很大,已经超出我的代码的实际行数。

可能是我代码里有循环语句。所以大。

但这样的话。我怎么知道 到底是哪里出错呢。为什么会出现这样的错误?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2011-2-14 03:25:35 | 显示全部楼层
本帖最后由 happytc 于 2011-2-14 03:31 编辑

超过实际行数,那里因为exe里,有着很多你#include的代码(跟循环没有关系)。而出现这些错误,说明你写的代码健壮性不好,没有考虑到一些特别情况。想要知道那里出错了,一则可以用Debug模式找,再则就是运行script时,想想什么情况(操作)下会出现这种错误提示,让它再现。

说了半天,还是你写的代码中有些情况没有考虑到
发表于 2011-2-14 12:43:18 | 显示全部楼层
回复 2# happytc


    Debug模式  是什么样的?
发表于 2011-2-14 16:06:29 | 显示全部楼层
#AutoIt3Wrapper_Run_Debug_Mode=Y
加上它,很有用
 楼主| 发表于 2011-2-14 16:10:04 | 显示全部楼层
谢谢大家。虽然还是不太明白。

我再检查检查吧。
 楼主| 发表于 2011-2-14 16:11:14 | 显示全部楼层
回复 2# happytc

HAPPYTC您 好。您 所说的“说明你写的代码健壮性不好,没有考虑到一些特别情况。”

具体是指什么呢?能不能举个例子,我好反省一下我写程序过程中存在什么毛病和不足。非常感谢!
如何增强代码的健壮性和怎么考虑特别情况呢。/
发表于 2011-2-15 20:29:55 | 显示全部楼层
回复  happytc

HAPPYTC您 好。您 所说的“说明你写的代码健壮性不好,没有考虑到一些特别情况。”

具 ...
imnebula 发表于 2011-2-14 16:11

没看到你的代码,不能具体问题具体分析了,只能泛泛地说。还是举个例子吧,比如,你在用函数:$arr = IniReadSectionNames("f:\a.ini"),可能一般情况下文件f:\a.ini里都会有section,从而你接着用:for $i = 1 to $arr[0] ……语句时都没有问题,而当返回值$arr不是数组时,用后面的for语句就会出现你一楼出现的类似错误,从而让au3退出。
 楼主| 发表于 2011-2-16 06:12:44 | 显示全部楼层
回复 4# xyold1


加了,还是有问题,不知道您说的很有用是指什么呢。谢谢。
发表于 2011-2-16 18:01:50 | 显示全部楼层
回复 8# imnebula
我说调试有用
发表于 2011-2-16 20:41:53 | 显示全部楼层
既然你遇到了报错,那么总应该知道是什么样的情况下吧?你可以不要编译成exe,用au3脚本直接F5试运行,然后让程序进入相同的情况,出错后,点确定关闭报错框,程序自动退出,这时在SciTE也就是au3的那个脚本编辑器里的下面那个框里,有出错相关内容,需要用鼠标往下还是往上来着,找找。
还有,LS说的有用是指对于调试程序,方便用户找到出错的地方有用啊,不是加了那一条程序就不会报错了,报错的根本原因就是你的代码在实际使用中存在缺陷,对于一些函数的错误没有理会,顽固的使用上个函数出错的结果进行下一个函数的应用,这才会报错。
发表于 2011-2-16 20:48:29 | 显示全部楼层
就比如图上说请求动作失败,那么当时你正要干什么,是打开目标文件吗?既然说失败,那么假设是打开或者读取操作失败,那么可能是因为目标文件被写了保护,而你的程序没有写“如果目标被保护了读不到内容程序该怎么做”,自然就报错了。
如果LZ真心想要找出问题所在,可以把你的源码发上来,不然大家帮不了你
发表于 2011-2-16 23:38:56 | 显示全部楼层
请求动作失败应该是obj引起的,加个ObjEvent事件就可以了。
 楼主| 发表于 2011-2-17 02:35:08 | 显示全部楼层
回复 11# 飘云

谢谢飘云兄的详细 建议!我已经重新检查了代码,现在基本不会有错误 提示了。非常感谢!:)
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-21 12:42 , Processed in 0.096303 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表