找回密码
 加入
搜索
查看: 4453|回复: 11

[效率算法] 如何忽略数组错误

  [复制链接]
发表于 2011-4-26 00:25:22 | 显示全部楼层 |阅读模式
我在一段循环代码中,设了一个数组存放,网页中正则取出来的值,但是一但取值失败,脚本就是中断退出,因为是循环的,我希望忽略错误,继续运行下去,请问有什么办法

本来是判断If $array[0]的值,做一些动作的,但是一出错脚本就退出了
出错
If $array[0]= "??" Then
If $array^ ERROR
发表于 2011-4-26 00:35:34 | 显示全部楼层
本帖最后由 happytc 于 2011-4-26 00:37 编辑

贴出代码来。
没有代码,不好说。
不过,可以判断一下嘛,不知道你失败取值后,所得的$array[$i]的值是啥?这里假设是空,你可以是循环里:
if $array[$i] == "" then ContinueLoop
其实还不明白你说的“继续运行下去”是什么意思,是继续循环呢,还是继续执行循环外的脚本。
 楼主| 发表于 2011-4-26 01:02:13 | 显示全部楼层
本帖最后由 lluxury 于 2011-4-26 01:03 编辑

我是从网页的固定位取一个td的内容,然后正则,但有时候网页里没有哪段正则,就会取失败
因该是让if语句继续下去


        $oTd_hp = _IETagNameGetCollection ($oIE, "td",17)
        $str_hp=_IEPropertyGet($oTd_hp, "innertext")
        $array_hp = StringSplit($str_hp, '/', 1)
        ConsoleWrite ($array_hp[1])
        ;if $array_hp[1] == "" then ContinueLoop
        If $array_hp[1]< 1100 And $array_hp[2]>1200 Then  
        girl()        ;修改6


报错 C:\Documents and Settings\Administrator\My Documents\6.7alpha_DebugIt.au3 (79) : ==> ?????????????.:
If $array_hp[1]< 1100 And $array_hp[2]>1200 Then
If $array_hp[1]< 1100 And ^ ERROR
发表于 2011-4-26 01:19:45 | 显示全部楼层

$oTd_hp = _IETagNameGetCollection ($oIE, "td",17) 
        $str_hp=_IEPropertyGet($oTd_hp, "innertext")
        $array_hp = StringSplit($str_hp, '/', 1)
        If not @error then
             ConsoleWrite ($array_hp[1])
             ;if $array_hp[1] == "" then ContinueLoop
             If $array_hp[1]< 1100 And $array_hp[2]>1200 Then  
            girl()        ;修改6
            endif
        endif
发表于 2011-4-26 01:36:17 | 显示全部楼层
我是从网页的固定位取一个td的内容,然后正则,但有时候网页里没有哪段正则,就会取失败
因该是让if语句继 ...
lluxury 发表于 2011-4-26 01:02


这样呀,你直接在:if $str_hp == "" then ContinueLoop不就行了
何必还在后面StringSplit后才去判断呢?
 楼主| 发表于 2011-4-26 03:59:56 | 显示全部楼层
本帖最后由 lluxury 于 2011-4-26 04:20 编辑

网页中的值是82/200/3118 这样的,我要82的部分做比较,而且有些是汉字

if $array_m2[1] == "" then ContinueLoop
if ^ ERROR

看来有些不为0呢
 楼主| 发表于 2011-4-26 04:05:47 | 显示全部楼层
papapa314 发表于 2011-4-26 01:19



    谢谢,这样写就可以了,我以前没这个习惯,不处理出错部分的
 楼主| 发表于 2011-4-26 04:16:41 | 显示全部楼层
另,不知道 这个问题有解没 http://www.autoitx.com/thread-23976-1-1.html
发表于 2011-4-26 09:37:56 | 显示全部楼层
先判断是否是数组
if isarray($array) then
发表于 2011-4-26 09:58:57 | 显示全部楼层
先判断是否是数组
if isarray($array) then
大绯狼 发表于 2011-4-26 09:37



    你错了,那个返回的怎么都是数组,就是出错了,也是
发表于 2011-4-26 10:02:57 | 显示全部楼层
本帖最后由 masterpcc 于 2011-4-26 10:05 编辑
我在一段循环代码中,设了一个数组存放,网页中正则取出来的值,但是一但取值失败,脚本就是中断退出,因为 ...
lluxury 发表于 2011-4-26 00:25


If not IsArray($array) Then $array[0]=0
可解决数组的问题..
 楼主| 发表于 2011-4-26 10:56:37 | 显示全部楼层
If not IsArray($array) Then $array[0]=0
可解决数组的问题..
masterpcc 发表于 2011-4-26 10:02



    确实,谢谢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-15 01:32 , Processed in 0.083814 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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