Поимать Eхception в Service

Janex
Дата: 12.07.2019 14:36:44
Привет всем.
Как глобально перехватить exception в простом приложение ясно,
а кот знает как ето в сервисе сделать ?
А то он как партизан молчит и всё проглатывает (если конешно не фатальныи exception )
а мне надо чтов в мои лог всё попадало ...
Можно конешно в каждом куске кода ставить try...except но хочется чтоб он
как то глобально всё ловил.

WBR
Janex
rgreat
Дата: 12.07.2019 14:46:36
В сервисе не должно быть кода вне блоков try ... except.

Совсем.
Василий 2
Дата: 12.07.2019 14:57:07
Если наследуешь от дельфового класса, наверняка должен быть какой-нибудь OnException. А в общем случае да, в сервисе и DLL исключения не должны протекать наружу
cptngrb
Дата: 12.07.2019 15:09:29
Janex, глобально не получиться.
читай пост rgreat
DmSer
Дата: 12.07.2019 16:08:13
Недавно боролся с зависанием сервиса. В TDatamodule.OnCreate был код, который у клиента выдавал исключение, а try except не было. Из за этого сервис видимо выдавал невидимое окно с сообщением. Вроде и зависанием назвать сложно ))
Василий 2
Дата: 12.07.2019 18:37:04
У TServiceApplication есть методы ловли исключений, но событий он наружу не выставляет (XE2). Странно.
X-Cite
Дата: 12.07.2019 20:32:07
Потому что служба - это бэкенд, если в нем может быть куча логики, как вы собираетесь обрабатывать ошибки в разных потоках, в разных по смыслу идей вложенных в службу.. Тем более вы в одном exe можете зарегистрировать несколько служб...

Конечно с точки зрения одна точка отлова ошибок для лога удобно... но ведь можно ее использовать и для других целей, что ломает всю концепцию изолированности услуг от службы.

https://www.sql.ru/forum/1146498/otlov-vseh-oshibok-rtl-raise-i-t-p
vavan
Дата: 15.07.2019 09:53:51
Janex, трапперы-логгеры иксепшнов не предлагать?