Seite 2 von 2

Verfasst: 25.02.2006 20:24
von remi_meier
Jap, vermeiden wäre besser! Aber z. B. bei Danilos Beispiel vom rekursiven
Scannen von Verzeichnissen kann es schon Probleme geben. Ich glaube
nicht, dass jeder im Stande ist oder jedes mal ausrechnen will, welche
Rekursionstiefe erreicht werden kann und dann eine Abfrage einbaut!

Was ich übrigens vergessen habe zu sagen: Beim PBOSL-Code sollte
trotzdem möglichst bald das Programm beendet werden, denn PB säubert
am Ende einer Prozedur noch manchmal irgendwelche Sachen, was bei
einer Exception jedoch nicht mehr der Fall ist! Dadurch gibt es Speicher-
fehler oder Schlimmeres (weiss nicht was z. B. bei Threadsafe und Strings
so passiert...).

Aber immerhin kann man so darauf reagieren und dem Benutzer sagen,
was abläuft, sowie normal beenden :)

Verfasst: 25.02.2006 20:40
von uweb
Beim rekursiven Scannen von Verzeichnissen wäre ich

entweder frech und würde mir einen großen Happen (die Größe brauche ich ja nicht jedesmal neu festlegen) schnappen und unterwegs die Grenze im Auge behalten (schnell)

oder brav und würde mir wie gesagt mit weiten Grenzen unterwegs Häppchen holen (etwas langsamer).

Klar, wenn sich die Größe nicht im voraus ermitteln läßt kann man deren Erreichen auch nicht vorhersagen. Wenn sie sich aber ermitteln läßt muß nicht unbedingt irgendwer irgendetwas tun. Dafür haben wir doch unsere E-Brain-Extension.

Verfasst: 25.02.2006 22:00
von remi_meier
Hab zwar deine Methode oben nicht ganz verstanden, aber gut, wenn du
damit zurecht kommst :allright:

Es gibt "leider" sehr viele "Probleme", welche sich nur durch Rekursion
elegant lösen lassen. Glaub mir, du willst nicht jedes Mal stundenlang über
einer Prozedur brüten bis du sie garantiert stacksicher gemacht hast, da
zumal bei Tests der Fehler oft nicht erkannt wird.
Fehlerbehandlung gehört sowieso zu jedem Projekt, Stack Overflows lassen
sich, wie (fast) jeder Fehler vermeiden, dennoch kommen sie noch sehr
sehr oft vor...


greetz
Remi

Edit: Ganz einfacher Fall, wo du den StackOverflow sehr schlecht abschätzen
kannst: Dein Programm baut auf sehr vielen Prozeduren auf, wodurch
automatisch ein grosser Stackbedarf entsteht, nebenbei hast du nun noch
eine nur leicht rekursive Funktion, die nunmal ein wenig zuviel braucht,
was eigentlich fast nicht berechenbar ist.

Verfasst: 25.02.2006 22:07
von Kaeru Gaman
tja...

mein wunsch für PB 9.0 : dynamischer Stack