Einzelnen Beitrag anzeigen

MStoll

Registriert seit: 15. Nov 2005
131 Beiträge
 
Turbo Delphi für Win32
 
#5

AW: TIdHTTPServer: Programmabsturz bei langwieriger ResponseInfo-Berechnung

  Alt 31. Dez 2013, 13:37
LCL? Delphi oder doch Lazarus?
Weder noch, einfach nur Free Pascal mit einer zur Laufzeit erzeugten Indy-Komponente (HTTP-Server) auf einem Raspberry Pi.

Also der ganze Server ist also eine Konsolenanwendung und du hast vermutlich vergessen die eine Exception abzufangen.
Und hier wird vermutlich das Transfer-Timeout der Klientanwendung zuschlagen.

Es ist grundsätzlich so, daß wenn Exceptions, welche bis zur Basis zum Windows gelangen das Programm abschießen.
Bei der VCL ist es so, daß die Message-Behandlung über ein Try-Except geschützt ist und Exceptions so praktisch nie bis zur obersten Ebene durchgelangen.

Windows zeigt keine Exceptions an. Dieses macht das Programm selber, indem es sie abfängt und "verarbeitet".
Ist eine Exception durchgerauscht, dann gibt das Programm maximal noch einen Fehlercode zurück (System.ExitCode > in DOS das berühmte ERRORLEVEL)
und eventuell wird noch eine Meldung in die Ereignisanzeige vom Windows geschrieben.
Mir ist schon klar, wie das mit den Exceptions funktioniert. In deiner Vorlage würde eine Exception aber auch zum Beenden des Programms führen, da nach dem except-Block das Programm endet. Es soll ja auch nicht der ganze HTTP-Server abstürzen, wenn es mal irgendwo zu einem Timeout kommt.

Wie man an dem Beispiel oben sieht, habe ich zumindest für den Fall des ContentStreams (bei dem der Fehler ursprünglich auftrat) einen try...except-Block um den "WriteContent"-Aufruf herum platziert.

Ich werde aber wohl mal zum Test einen try...except-Block um das ganze Hauptprogramm herum machen und schauen, ob mir dann eine Fehlermeldung angezeigt wird. Evtl. tritt die Exception ja an einer anderen Stelle im Programm auf.

Und was Windows oder DOS machen, ist ja für einen Raspberry Pi nicht ganz so interessant
"Man soll nie mehr essen als mit Gewalt reingeht!" (n.n.)
  Mit Zitat antworten Zitat