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

Martin v. Löwis martin at v.loewis.de
Wed Dec 11 17:47:41 EST 2002


Gerson.Kurz at t-online.de (Gerson Kurz) writes:

> > try:
> >   cfg_open()
> >   value = cfg_get(name, value) # Was bedeutet hier eigentlich der
> >                                # value-Parameter?
> > except CfgCouldNotOpen:
> >   return value
[...]

> Das ist zugegeben lesbarer, mich würde jetzt nur noch stören, daß ich nur
> explizit diese beiden Exceptions wissen muss. 

Aber das ist doch _haargenau_ das gleiche wie bei Fehlercodes, die
muss der Rufer doch auch kennen. Die Ausnahmen einer Operation gehören
zum Interface dieser Operation.

> (Ich musste übrigens den Code zweimal lesen, um zu erkennen, daß
> cfg_close() nicht aufgerufen wird, wenn cfg_open() fehlschlägt).

Ich denke, das ist eine Übungsfrage. Durch das Except-Else-Konstrukt
kann man Programme so schreiben, dass die Fehler in Leserichtung
zuerst behandelt werden, während sie aufgrund der Gewohnheit an
anderer Stelle erwartest.

Ciao,
Martin





More information about the Python-de mailing list