PureBasic

OnErrorGoto()

Синтаксис

OnErrorGoto(?LabelAddress)

Описание


Заменяет действие, выполняемое когда произошла ошибка, на переход к заданной метке и продолжение выполнения программы оттуда. После перехода к метке можно использовать функции этой библиотеки для получения дальнейшей информации об ошибке.

Параметры

?LabelAddress Адрес метки в программе, на которую переходить.

Возвращаемое значение

Ничего.

Комментарии

Стек программы не будет скорректирован перед переходом к метке, поэтому к локальным переменным обращаться не следует, так как они могут быть более не доступны. Также небезопасно продолжать после ошибки нормальное выполнение программы так как вещи вроде адреса возврата из процедуры могут быть неверны если стек стал некорректным. Лучшая практика здесь просто собрать и отобразить информацию об ошибке, а затем выйти из программы.

Пример

MessageRequester("Тест OnError", "Начать тест")

OnErrorGoto(?ErrorHandler)
PokeS(10, "Привет мир") ; Вызовет ошибку #PB_OnError_InvalidMemory

MessageRequester("Тест OnError", "Это не должно отобразиться")
End

ErrorHandler:
MessageRequester("Тест OnError", "Произошла следующая ошибка: " + ErrorMessage())
End

Поддерживаемые OS

Все

<- OnErrorExit() - Оглавление OnError - RaiseError()->

{����