[Python-de] RE: [Python-de] Versuch über die Ausnahmebehandlung

Gerson Kurz Gerson.Kurz at t-online.de
Wed Dec 11 17:55:46 EST 2002


Martin v. Löwis frägt

> > cfg_get soll den Defaultwert (value) zurückliefern, wenn es den
> Parameter
> > nicht gibt. Unter C hätte ich einen Pointer, den ich nicht
> verändere, und
> > meinen geliebten Errorcode.
>
> Warum kann dann cfg_get überhaupt noch scheitern?

Weil ich z.B. Tracen möchte, was genau fehlgeschlagen ist (etwa: Wert
existiert nicht in der Konfiguration, Wert existiert in der Konfiguration,
hat aber einen anderen Datentyp usw.) Und angenommen, es handelt sich nicht
um die gerngehasste Registry, sondern um ein Api eines Drittanbieters: es
kann ja gut sein, daß dessen cfg_get() einen Trace schreibt, aber ich möchte
in meinem Trace auch sehen, was genau schiefgelaufen ist. Ursache für das
Beispiel war natürlich, daß _winreg.QueryValue() eine Exception wirft, wie
mir (glücklicherweise frühzeitig) schmerzlich bewusst wurde.

Mir ist übrigens noch ein Grund gegen Exceptions eingefallen:
Interoperabilität. Exceptions sind sprachgebunden (häufig sogar
compilerabhängig) - fang mal in C eine exception aus einer C++-Library.






More information about the Python-de mailing list