Nunja, der Dienst kann schwerlich abstuerzen, wenn du SEH (try/except und try/finally) sinnvoll einsetzt. Daher sollte es ausreichen, wenn du es als Schleife konzipierst, ala:
Delphi-Quellcode:
while(ServiceRunning)do
try
// Hauptarbeit erledigen
except
// Fehler melden und naechsten Schleifendurchlauf angehen
end;