Столкнулся с проблемой. Пишу безопасное серверное приложение. Вылизанный код основного модуля, где все 99% надежно, и произвольный перегружаемый метод, где может и рвануть Access Violation.
По наивности, думал, что использование конструкции
- Код: Выделить всё
try
MainServerMethod()
except
on E:Exception do
..
end
FinalServerMethod()
должно при любом раскладе (если я не использую вызовы dll в MainServerMethod) дать мне безопасное выполнение. Т.е, FinalServerMethod выполнится всегда.
Но!!! уже три раза, внутри MainServerMethod (да, там сложная структура, много классов, обращение к БД и прочее) возникает Access Violation и программа ПАДАЕТ
Есть ли какие-то условия, при которых try except не срабатывает?
Думал на Runtime Error, но при подключении модуля SysUtils они по-любому преобразуются в Exception
Весь сервер - один exe файл. DLL на FreePascal давно не делаю, это мертвый номер. Но тут выясняется, что и в одном исполнимом файле может быть веселье.
Среда компиляции: FPC 2.6.2, Linux32
Среда выполнения: Linux32