找回密码
 加入
搜索
查看: 2751|回复: 8

[AU3基础] seterror(0,0,0)的意义?

  [复制链接]
发表于 2011-7-7 11:24:28 | 显示全部楼层 |阅读模式
看到某位高手一直喜欢用这招必杀技 , 想学习,但是不是非常清楚他的用意,请看代码

        If ($bFound == True) Then
                return SetError(0,0,0)
        Else
                return SetError(1,0,1)
        EndIf

他的整个程序意在说明,如果bFound的值找到(true),就seterror为0,否则为1.为什么不这样

seterror(0)
seterror(1)
?

他这招优点在哪?
发表于 2011-7-7 12:02:04 | 显示全部楼层
其实这个问题看看帮助就能解决

SetError ( 错误码 [, 扩展值 [, 返回值]] )
发表于 2011-7-7 18:35:40 | 显示全部楼层
本帖最后由 daiyu116 于 2011-7-7 19:05 编辑

回复 1# yarsye

根据我的理解, SetError(0,0,0)中第二个参数@extended 在针对同一个error时意义更大。
举个例子。

出错,出错的原因可能是运行文件出错,也可能是打开文件出错,
那么这时候可以这么写:

if 出错 then
   if  运行文件出错 then
        return  SetError(0,1)
   elseif 打开文件出错 then
        return  SetError(0,2)
   endif
endif

针对上面这个代码判断时就要这样写:
if @error=0 and @extened=1 then  或者 if @error=0 and @extened=2 then

SetError(0,0,0) 或者 SetError(1,0,1) 或者 SetError(2,0,2) 中第三个参数的值如果和第一个@error参数值相同,那他完全是多余的,就不必特意写出来第三个参数。
所以对于1楼你贴出来的代码,我认为完全可以只写为

        If ($bFound == True) Then
                return SetError(0,0)
        Else
                return SetError(1,0)
        EndIf


因此,举例子如下:
出错(@error),出错的原因(@extended)可能是运行文件出错(想设置这个原因返回的值设置为3),也可能是打开文件出错(想设置这个原因返回的值设置为9)
那么这时候可以这么写:

if 出错 then
   if  运行文件出错 then
         return SetError(0,1,3)
   elseif 打开文件出错 then
         return SetError(0,2,9)
   endif
endif

针对本例,后面判断的时候可以用下面的语句:
if @error=3   then  或者 if @error=9   then
如果还有其他@error=3的情况,那么判断的时候要写成if @error=3 and @extended=1  then

评分

参与人数 2金钱 +20 贡献 +7 收起 理由
powerofos + 10 + 5
tryhi + 10 + 2

查看全部评分

 楼主| 发表于 2011-7-8 09:38:16 | 显示全部楼层
哇塞!详细透彻!清楚明了。谢谢
发表于 2011-7-8 13:55:17 | 显示全部楼层
本帖最后由 daiyu116 于 2011-7-8 13:57 编辑

回复 4# yarsye
呵呵,上面是我的看法,但也可能会有不同的看法啊。
另外,很多函数都会有返回值,所以要特别注意设置seterror的插入点~欢迎交流
 楼主| 发表于 2011-7-14 10:29:34 | 显示全部楼层
回复 5# daiyu116


   非常感谢!
最近就在seterror这方面老是有困惑,最诡异的是 我定义了 Global $Error
$Error =ShellExecute(xx) 提示我不能给常量赋值 ,不知道$Error何时成为了常量。
想记录每做一步的返回值,如果出错也好知道在哪里出错了。
发表于 2011-7-14 16:18:41 | 显示全部楼层
呵呵,以后遇到这样的情况我会想起此贴的,感谢
 楼主| 发表于 2011-7-22 16:42:13 | 显示全部楼层
Marking !!!
发表于 2011-8-15 11:57:44 | 显示全部楼层
标记 以后备用 谢谢分享
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-15 01:41 , Processed in 0.076028 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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