Да, перед тем, как писать, мне надо было бы разобраться, как там всё работает. Но я точно не вижу никакой возможности ни бросить разные исключения, ни вмешаться в их обработку. Значит, надо это сделать сейчас.

Я смотрю не на тесты, а на команды - они тоже обладают свойством выживать после исключений. Там имеется атрибут SAFE. Дальше это работает так:

## Код:
```
Runner = окласс(Modules.ЛХА)
        (* ... *)
        exception : булево; (* изначально ставится в значение "ложь" *)
        (* ... *)

    нач {активное, SAFE}
        Objects.SetContext(context);
        если ~exception то
            exception := истина; 
            module := Modules.ThisModule(moduleName, res, msg);
            дайПроцПоИмени(moduleName, commandName, proc);
            proc();
        иначе
            res := CommandTrapped; копируйСтрокуДо0("Exception during command execution", msg);
        всё;
    кон Runner;
```

Волшебный модификатор SAFE делает так, чтобы тело процесса перезапускалось в случае возникновения исключения (а не просто возвращало исполнение в пользовательский код). Я не знаю, где это должно быть написано, но в описании ЯОС это сейчас будет написано

В Unix.Objects за перезапуск отвечает ExitTrap, которая пользуется longjmp, а setjmp делается при запуске процесса при наличии флага Restart = 0. В промежуточном хвосте компилятора {Restart} кодируется просто числом 1, видимо, чтобы легче было догадаться. На других платформах, видимо, это делается по-другому.

Не будучи бабушкой Вангой, рискну предположить, что и в тестовом движке работа устроена так же. Насчёт того, что раскрутка стека выполняется после обработки исключения - не готов пока что поверить, хотя, если бы это было правдой, то было бы прекрасно. Хотя, конечно. если речь идёт о той простейшей обработке исключения, которая выводит стек на экран и куда там ещё надо, то может быть. В этом случае сценарий такой:

делим на 0возникает исключениепечатается стек и подаётся команда на красное окнораскрутка стека и выполнение блоков FINALLY(в ЯОС они называются "выходя").выпадение из активного объекта, если он обычный (на этом его история завершается) или перезапуск тела, если он SAFE
Это лишь моя гипотеза, но я уверен в ней процентов на 80.