Подключён механизм исключений CATCH/THROW.

 
+
-
edit
 

Balancer

администратор
★★★★★
Сабж (пока только в JBForth, к L2Fortress изменения ещё не коммитил - сделаю кумулятивный коммит, как добавлю локальные переменные слова).

Работает просто (детальнее - см. стандарт ANS-94, реализация совместимая со стандартом).

Если нужно вызвать слово, способное вызвать исключение (например, ') вызываем его не непосредственно, а передав его адрес слову
CATCH ( i*x -- j*x 0 | i*x n ). Если результат выполнения нулевой, то отработано без исключений, можно считать дальше.

Если было исключение, то возвращается его код, а состояние стеков приводится к уровню до вызова CATCH.

THROW ( x -- ) бросает исключение x, если x != 0. Если 0, то выполнение продолжается как ни в чём ни бывало.
 

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru