Function Reference

首页  后退  前进

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

----------------------------------------