[Dune] Vorschlag für Exceptions

Thimo Neubauer thimo at debian.org
Tue Jul 20 17:05:18 CEST 2004


Hallo,

nachdem es mit der Fehlerbehandlung etwas kreuz und quer geht wollte
ich das Thema Exceptions mal wieder ansprechen. Ich persönlich finde
da folgende Sachen wichtig:

1. möglichst simple Ableitung von Unterklassen/Gruppen von Unterklassen

2. Möglichkeit zwischen viel Angaben während der Entwicklung (auch
  Dateiname, Zeilennummer usw.) und wenig Angaben im Betrieb umzuschalten

3. mitgeschickte Meldung muss sich einfach aus Variablen basteln lassen
  (Syntax wie bei cout)

Ich gehe mal davon aus, dass hier die Geschmäcker verschieden
sind. Vor allem, ob ihr die Ausgabe des Namens der Exception auch
interessant findet, würde mich interessieren.

Meine Ideen gehen halt leider nicht ohne den Präprozessor: 2 geht
absolut nicht ohne, 3 kann man dabei mit erschlagen. Dafür komme ich
immerhin bei 1 ohne aus :)

Angehängt ist ein Vorschlag, wie man das machen könnte. Das Design ist
etwas krude, es ist halt um die Idee, eine Unterklasse einfach mit

  class NeuerFehler : public Exception {};

erstellen zu können aufgebaut. Die Alternative wäre halt mit einem
Konstruktor, der einen String erhält, aber da muss man dann für die
Ableitung wieder einen Konstruktor schreiben (wofür manche dann auch
ein Ableitungsmakro schreiben würden...). Die Ausgabe von Datenamen,
Zeilennnummer und Funktion, in der der Fehler geflogen ist, klappt im
gcc wie im icc.


Neben einer Einigung auf eine Exception-Klasse müssten wir uns dann
auch über eine grobe Einteilung der Fehler Gedanken machen. Wichtigste
Frage ist: welche Sorten von Fehlern kann man sinnvollerweise abfangen
um noch etwas zu retten. Fällt Euch ausser IOError und MathError
(z.B. Matrix lässt sich nicht invertieren) noch eine grosse
Fehlerklasse ein?


Gruss
  Thimo
-------------- next part --------------
A non-text attachment was scrubbed...
Name: extest.cc
Type: text/x-c++src
Size: 2351 bytes
Desc: not available
URL: <https://lists.dune-project.org/pipermail/dune/attachments/20040720/ea3eb8a3/attachment.cc>


More information about the Dune mailing list