SetError
设置宏 @error 的值 (可选设置 @extended 和返回值)
SetError ( code [, extended = 0 [, return value]] )
参数
code
|
设置 @error 的一个整数值.
|
extended
|
[可选] 设置 @extended 为所需的整数值. 与 SetExtended() 函数的设置值相同.
|
return value
|
[可选] 应由该函数返回的值 - 如果没有参数, 返回值是不确定的.
|
返回值
返回参数 "返回值" 的设置值 (如果未使用这个参数, 则结果不明确).
@error 和 @extended 将被设置为函数调用中设置的值 (这两个的默认值 = 0)
备注
当设置函数的 @error 值为 0 时, 除非调用 SetError() 否则直到该函数结束, @error 将保持值为 0.
要使 @error 能反映函数的结果, 必须明确设置 @error 的值.
要在某个 While-WEnd 循环中测试错误, 可能需要备份 @error 的状态值到一个变量.
"扩展值"参数是可选的. 它只是提供在同一时间同时设置 @error 与 @extended 的一种方式.
如果只需设置 @extended, 建议使用 SetExtended() 函数代替.
返回值参数是可选的. 它作为一种方法来使用 Return SetError(...) 语法来定义在函数返回的同时设置 @error (和可选的 @extended). 如果没有设定特定的值, 那么返回值将是不确定的, 不应用在随后的代码中.
@error 取值范围: -2147483648 到 2147483647.
相关
SetExtended
函数示例
示例 1
#include <MsgBoxConstants.au3>
Local $fResult = myDiv(5, 0)
If @error Then
MsgBox($MB_SYSTEMMODAL, "Error", "Division by Zero")
Else
MsgBox($MB_SYSTEMMODAL, "Result", $fResult)
EndIf
Exit
Func myDiv($iDividend, $iDivisor)
If $iDividend = 0 And $iDivisor = 0 Then
SetError(2) ; Indeterminate form 0/0.
ElseIf $iDivisor = 0 Then
SetError(1) ; Plain division by zero.
EndIf
Return $iDividend / $iDivisor
EndFunc ;==>myDiv
示例 2
#include <MsgBoxConstants.au3>
Local $sReturn = Example()
; Display the return value, @error and @extended value.
MsgBox($MB_SYSTEMMODAL, "", "Return value = " & $sReturn & @CRLF & _
"Value of @error is: " & @error & @CRLF & _
"Value of @extended is: " & @extended)
Func Example()
Return SetError(3, 10, "Some return value") ; Set @error to 3, @extended to 10 and return the string "Some return value."
EndFunc ;==>Example
----------------------------------------
|