C a C++ > Obecné
Služba - logování vyjímek
hlucheucho:
ParamStr(0) vrátí Full Path exe souboru služby.
Možná jste to přehlédli, ale když zkusím zapsat do souboru při obsluze událostí OnCreate a OnStart služby, kotevření souboru a zápisu dojde. Proto bych vyloučil práva k adresáři a problém se jménem souboru. Koneckonců zápis do C:\test se chová úplně stejně. Zřejmě je používán defaultní handler vyjímek nikoliv můj.
hu
pf1957:
--- Citace: hlucheucho 03-09-2014, 14:54:45 ---Zřejmě je používán defaultní handler vyjímek nikoliv můj.
--- Konce citace ---
A dival ses, jak vypada TServiceApplication?
Ta sama odchytava neosetrene vyjimky a pise je do systemoveho logu, takze zrus to prirazeni OnException a vyvolej vyjimku -> mela by se ti objevit v systemovem logu. A pokud chces jine chovani, budes si muset subclasnout TServiceApplication, prekryt DoHandleException, zrusit puvodni instanci TServiceApplication a nahradit ji instanci subclasnute tridy.
hlucheucho:
Podstata věci: službě nelze takto snadno "podstrčit" globální handler vyjímek?
hu
pepak:
Službě nelze snadno podstrčit spoustu věcí, tak proč ne i exception handler?
pf1957:
--- Citace: hlucheucho 03-09-2014, 16:14:03 ---Podstata věci: službě nelze takto snadno "podstrčit" globální handler vyjímek?
--- Konce citace ---
Cistym zpusobem ne (proc taky, kdyz sama loguje tam, kam se maji mimoradne udalosti logovat. A neobslouzena vyjimka je mimoradnou udalosti).
Necistym zpusobem by to za urcitych prepodkladu melo jit udelat tak, ze se najde vhodne misto (asi na zacatku OnExecute 1. instance TService) a tam se prepise handler Forms.Application.OnException.
Navigace
[0] Seznam témat
[#] Další strana
[*] Předchozí strana
Přejít na plnou verzi