我的理解:
@error 反映调用一个函数时该函数的执行情况. 一般我们在成功得到结果时,设为0,失败时设为1等. 当然不一定这样,你自己根据自己的喜好或要求而设定.
SetError 这是内置函数, 让我们得以在自定义函数内设置它的@error. 如果不用它, 那么所有的自定义函数的@error值都被默认地设为0.
借用4楼代码进一步说明吧;Local $iResult = myDiv(5, 0)
If @error Then
If @extended = 1 Then
MsgBox(4096,"输入错误", "除数为0")
ElseIf @extended = 2 Then
MsgBox(4096,"输入错误", "除数和被除数均为0")
Else
MsgBox(4096,"错误", "发生了未知错误")
EndIf
Else
MsgBox(4096, "结果", $iResult)
EndIf
Func myDiv($iDividend, $iDivisor)
If $iDividend = 0 And $iDivisor = 0 Then
Return SetError(1, 2) ;表达式为 0/0,设置@error 及其扩展值
ElseIf $iDivisor = 0 Then
Return SetError(1, 1) ;除数为 0,;同上,设置@error 及其扩展值,
;但扩展值有所不同,以示这是另一个错误.
Else
Return SetError(0, 0, $iDividend / $iDivisor) ; 返回正确结果
EndIf
Return SetError(1, 3) ;未知错误
EndFunc
|