Tim Jansen's Blog (deutsch)


2003/10/04
C++ Exceptions
Ich bin wieder an dem Punkt angelangt, wo ich mit C++ Exceptions liebäugele. Bei allen APIs, die mit I/O oder dem Parsen von Daten zu tun haben, ist es fast unvermeidlich, nach jedem Aufruf einer Funktion eine Fehlerabfrage zu machen. Dadurch wird das Programm kompliziert, lang und schwer lesbar. Ausserdem ist es nicht einfach, das Design richtig hinzubekommen und im Zweifelsfall baut man diverse Fehler ein. Nachteil von C++ Exceptions, zumindest mit gcc, ist, dass die Binaries deutlich länger werden. Ausserdem kann man sie mit manueller Speicherverwaltung kaum vereinbaren, aber das ist eher ein Vorteil, weil manuelle Speicherverwaltung ohnehin bösartig ist.
Bislang habe ich versucht in den APIs die regelmäßige Fehlerabfrage zu verhindern, indem die meisten Methoden einer Klasse sich einfach tot stellen nachdem ein Fehler aufgetreten ist. Aber das verkompliziert sowohl die Implementierung als auch die API, weil für jede Methode das Verhalten nach einem Fehler definiert werden und der Entwickler dieses nacher kennen und berücksichten muss. Letztenendes führt wohl für alle XML-benutzenden, Parsenden und I/O Klassen kein Weg daran vorbei...



This page is powered by Blogger. Isn't yours? Creative Commons License
All text in this blog is licensed under a Creative Commons License.
(Images containing screenshots etc are excluded)