Closed sergey-s-betke closed 6 years ago
Напрашивается конструкция по типу try / finally
.
Для этой задачи напрашиваются собственные пролог и эпилог функций. Что вполне возможно.
Скажем:
/my_func function
end_function
При этом function
будет:
command
в $error
в идентификатор функцииа end_function
:
$error
. Ведь после возврата из функции стоит вернуться к настройкам, которые были сделаны для вызывающей функции.Возможно - тут же открывать локальный словарь (но как определять его размер?). Как тот так:
10 dict begin {
тело функции
} stopped end { stop } if
Тогда уже и сразу забирать параметры со стека в словарь. С контролем / приведением типов... Но это решение будет крайне медленным...
Операторы языка типа length
в случае исключения оставляют параметры на стеке. В общем - пока не вижу большой необходимости. Закрываю задачу.
Требуемое поведение
В случае ошибки стеки необходимо восстанавливать.
Текущее поведение
Сейчас стеки имеют отличая от состояния до вызова проблемной функции.