Thread Errorhandling
(26 answers)
Opened by Oliver at 2020-03-13 10:10
Den (Perl-code) kann ich dir gerne zeigen. ALLERDINGS! Man muss eher das Gesamtsystem betrachten, da an vielen unterschiedlichen Stellen Fehlerbehandlung gemacht wird. ZB wird auf den Webseiten kontrolliert, ob die Angaben sinnvoll und richtig sind. Wird zB eine Uhrzeit eingegeben, dann wird schon VOR dem Senden überprüft, ob diese 5 stellig ist, das 3. Zeichen ein ':' ist, die zwei Zahlen davor im Bereich 01-23 und die zwei Zahlen dahinter im Bereich 00-59 sind.
In dem Perl-Code wird dann auf zB so auf Dateifehler reagiert: Code: (dl
)
open ConfigFileObject, "< ".read_data("FILES", "CONFIGFILE") || write_errorlog("ERROR: $! : ".read_data("FILES", "CONFIGFILE"),"3"); oder beim Lesen der Daten aus der "Datenbank" wird überprüft, ob die verlangte Variable überhaupt existiert: Code: (dl
)
1 sub read_data{ Code: (dl
)
1 sub write_errorlog { In dem Perl-Code ist es wohl strenggenommen eher kein FehlerHANDLING, sondern eher eine FehlerNOTIFICATION. Die Fehler, die hier auftreten, sind nicht zu händeln, sondern müssen im Code (oder woanders) korrigiert werde. Es kann auch passieren das (WLAN) Netzwerkverbindungen abbrechen oder (längere Zeit) nicht zu stande kommen. Auch das wird protokolliert. Hier kann der Code noch so gut sein, das kann kein PERL der Welt beheben... Natürlich teste ich Code (-Blöcke) bevor ich sie aktive/produktiv einsetze. Aber, was als Teilstück funktioniert, muss ja nicht unbedingt im Ganzen gehen. Sowas zB trat schon öfter auf (konnte es immer beheben ;-)), ist aber in der Zuordnung WO und WANN es passiert schwer zu finden. Zwar wird die Code-Zeile angegeben, aber nicht das, was vorher passiert ist / gemacht wurde. Quote Quote Daher würde ich mir wünschen, dass diese auf STDERR ausgegebenen Fehler in meinen LOG stehen. Dann kann ich sagen, was das Programm gemacht hat kurz vorher So, Du wolltest den Code sehen Was denn genau? :-) Die ersten 1500 Zeilen sind "nur" Datenspeicher.... Anhänge |