"On [Local] Error" Statement

Автор eeigor, 11 ноября 2020, 01:13

0 Пользователи и 1 гость просматривают эту тему.

eeigor

«On Error» является глобальным по своему охвату и остаётся активным до тех пор,
пока не будет отменён другим оператором «On Error».
«On Local Error» является локальным для вызывающей его процедуры.
Обработка локальных ошибок отменяет любые предыдущие глобальные настройки.
Когда вызывающая процедура завершается, локальная обработка ошибок автоматически отменяется
и восстанавливаются все предыдущие глобальные настройки.

Кто может пояснить, о каких глобальных настройках идёт речь?
В VBA, насколько я знаю, нет ключевого слова <Local>. Не могу уловить разницу. Поэтому не использую.

https://help.libreoffice.org/6.1/he/text/sbasic/shared/03050500.html
https://docs.microsoft.com/ru-ru/office/vba/language/reference/user-interface-help/on-error-statement
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

sokol92

Я пару месяцев назад безуспешно пытался сочинить разумный пример, на котором была бы видна разница между On Error и On Local Error. Возможно, в современных версиях LO ее (разницы) и нет?
Владимир.

eeigor

#2
Владимир, спасибо за ответ.
Возможно, более опытные подскажут. А.Питоньяк использует этот оператор, но закономерности я уловить не смог. Оставляем без внимания...
Сам не проверял, но, полагаю, что оператор "On Error" действует в пределах процедуры, то есть и так локально, а саму обработку ошибок в процедуре можно отменить оператором "On Error GoTo 0". Тогда обработка будет осуществляться на "глобальном" уровне. Всё, вроде...
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community