SetError
Устанавливает значение макроса @error.
SetError ( code [, extended = 0 [, return value = 1 ]] )
Параметры
code | Число, которое будет присвоено макросу @error. |
extended |
[необязательный] Число, которое будет присвоено макросу @extended. По умолчанию 0 |
return value |
[необязательный] Функция вернёт данный параметр вместо своего обычного возвращаемого значения. По умолчанию 1 |
Возвращаемое значение
По умолчанию возвращает 1, однако, если указан 3-ий параметр (return value), функция возвращает его.Примечания
Вначале выполнения функции @error равен 0. Если вы не устанавливаете @error с помощью SetError(), то после завершения функции @error равен 0, даже если внутренние вызовы функций устанавливают иное значение. Это означает, что для того чтобы установить @error после выполнения функции, вы должны явно установить значение с помощью SetError(). Это также означает, что вам, возможно, потребуется продублировать значение @error в переменную, если вы проверяете его в цикле While-WEnd.См. также
SetExtended, Func...Return...EndFuncПример
$iResult = myDiv(5, 0)
If @error Then
MsgBox(4096, "Ошибка", "Деление на 0 не допустимо")
Else
MsgBox(4096, "Результат", $iResult)
EndIf
Exit
Func myDiv($iDividend, $iDivisor)
If $iDividend = 0 And $iDivisor = 0 Then
SetError(2) ; неопределённая форма 0/0
ElseIf $iDivisor = 0 Then
SetError(1) ; обычное деление на 0
EndIf
Return $iDividend / $iDivisor
EndFunc