Fehlerbehandlung

Robustheit und Fehlertoleranz treten bei immer komplexer werdenden Softwaresystemen mehr und mehr in den Vordergrund. Die Basis für ein robustes und fehlertolerantes Softwaresystem ist eine gute Fehlerbehandlung. Zur Erhöhung der Stabilität von Programmen müssen Ausnahmen vom üblichen Programmfluss gezielt behandelt werden. Es müssen Vorkehrungen getroffen werden, die Abstürze durch Ausnahmesituationen vermeiden und Ausnahmen genauso sicher behandeln wie alle anderen fehlerfreien Aktionen.

Es gibt - einmal abgesehen von trivialen Programmen - keine fehlerfreien komplexen Computerprogramme. Darum wählt man bei der Anwendungsentwicklung die Strategie der frühen Fehlererkennung und –behandlung. Der Sinn ist der, dass auf einen früh erkannten Programmfehler reagiert werden kann, um somit den möglichen Schaden zu minimieren. Würde ein Programmfehler beispielsweise nicht erkannt und behandelt, könnte man sich vorstellen, dass das fehlerhafte Programm bestenfalls einfach abstürzt und damit beendet wird. Eine fatale Folge eines Programmfehlers ist, dass dieser unbemerkt auftritt und zu falschen Ergebnissen führt und somit zum Beispiel korrupte Daten in die Datenbank einträgt und damit mühsam gepflegte Daten zerstört.

Robustheit

Bei der Entwicklung von wurde ein Konzept zur Fehlerfrüherkennung und deren Eliminierung umgesetzt. Auf Programmfehler wird sofort reagiert, nachdem sie entdeckt werden konnten. Sollte es einmal zu einem erkannten Programmfehler kommen, kann dieser nachvollzogen werden, wenn die sogenannte Tracedatei aktiviert war. Bei dieser Tracedatei handelt es sich um eine technische Datei, in der der gesamte Programmverlauf aufgeschrieben wird. Kommt es einmal zu einem Programmfehler, so kann anhand der Tracedatei festgestellt werden, wie es dazu kam.

Aber auch dann, wenn die Tracedatei nicht eingeschaltet ist, wird auf Programmfehler so früh wie möglich reagiert. Fehler werden gefangen und mit einem Fehlerdialog an den Anwender gemeldet. Die aktuell laufende Aktion wird abgebrochen und die betroffenen Daten in der Datenbank zurückgesetzt.

Exceptionhandling

Bei der Speicherung eines Bildes in der Datenbank muss auch ein Thumbnail erstellt werden. Hierbei werden Bilder in verschiedenen Formaten gelesen und neue Bilder in kleinerer Auflösung erzeugt. Bei dieser komplexen Verarbeitung kann es zu einem Programmfehler kommen, zum Beispiel wenn die zu speichernde Datei korrupt ist. Obwohl sehr hoher Aufwand betrieben wurde, solche Programmfehler zu vermeiden, lassen sie sich nicht völlig ausschließen. Damit es bei einer solchen Verarbeitung aber auf keinen Fall zu einem Bildverlust kommt, werden Exceptions und vom Prozessor generierte Signale (sigsegv, sigill, sigabrt, etc.) abgefangen und darauf entsprechend reagiert. Wenn es nun bei der Erstellung eines Thumbnails oder beim Rotieren eines Bildes zu einem solchen Fehler kommen sollte, fängt diesen Fehler ab, erzeugt eine entsprechende Fehlermeldung mit der der Benutzer darauf hingewiesen wird, dass kein Thumbnail erstellt bzw. dass das Bild nicht rotiert werden konnte.