[Dune] Range Checking

Thimo Neubauer thimo.neubauer at iwr.uni-heidelberg.de
Thu Aug 25 18:58:51 CEST 2005


Hi,

On Thu, Aug 25, 2005 at 10:45:13AM +0200, Oliver Sander wrote:
> Mein Hauptgrund ist, daß ich mittels Exceptions einfacher gute
> Fehlermeldungen generieren kann.  

Dem stimme ich zu, bei assertions geht es aber auch halbwegs, wenn ein
Kommentar dabei steht (oder sie offensichtlich ist, wie z.B. "assert(i
< max)")

> Als weitere, nicht so wichtige
> Gründe fallen mir noch ein, daß man Exceptions abfangen kann,
> falls man das tatsächlich mal will. 

Das würde mich überzeugen, wenn jemand einen Algorithmus hat, der auf
Indexfehler hin geeignet reagiert. Nur eine Fehlermeldung auszugeben
kann im Prinzip auch die Assertion.

Alternativ könnte man natürlich versuchen, einen Trick wie bei den
debugstreams zu verwenden, d.h. ein Objekt, dessen Aktion man global
verschwinden lassen kann, zu konstruieren. Das fände ich gar nicht
schlecht, weil mit Seiteneffekten nicht reinfallen kann.

> Außerdem habe ich den
> Eindruck, daß gdb besser mit Exceptions als mit Asserts
> umgehen kann.

Das kommt ganz darauf an... je nach Compiler/gdb-Version funktioniert
"catch throw" oder auch nicht; bei Assertions kann man den
entstehenden core (meiner Erfahrung nach) zwar auch nicht immer zum
post-mortem Debugging verwenden, wenn man das Programm aber gleich im
gdb laufen lässt findet man (nach einigen "up" natürlich) immer die
Problemstelle. Das ist bei Exceptions etwas kitzliger.

Andere Erfahrungen? Mache ich etwas falsch? :-)

Gruss
   Thimo
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <https://lists.dune-project.org/pipermail/dune/attachments/20050825/a985d88c/attachment.sig>


More information about the Dune mailing list