wie bewertet man Exceptions "pythonic"?
Verfasst: Freitag 7. April 2006, 00:30
Hi!
Die Situation sei folgende:
das ganze könnte zB eine Art Framework für dynamische Webseiten sein, für jede anzuzeigende Seite würde man von Base erben. Der Webserver würde dann "do" mit den Requestvariablen aufrufen.
Dank der Funktionalität von Base müssten sich die Funktionen nicht jedesmal mit der Vollständigkeit der Argumente auseinandersetzen.
So weit so gut. Was passiert nun aber, wenn irgendwo unterhalb der funktion ein TypeError verursacht wird? dann wird der fälschlicherweise gefangen, und das ist imho schlimmer als ihn nicht zu fangen, da er falsch interpretiert wird.
eine alternative wäre hier LBYL, was aber unpythonic wäre.
ich bin schon häufiger auf das problem gestossen, auch in anderen formen. gibt es da einen hübschen weg, der sich mir zZ entzieht?
Die Situation sei folgende:
Code: Alles auswählen
class Base:
def callback(self, **args):
""" abstract """
pass
def do(self, request):
try:
self.callback(**request)
except TypeError, t:
print "fehlerhafte parameter übergeben"
class Startseite(Base):
def callback(self, name, begehr, lieblingsfarbe):
print name, begehr, lieblingsfarbe
class Problem(Base):
def callback(self, **argmap):
raise TypeError()
Dank der Funktionalität von Base müssten sich die Funktionen nicht jedesmal mit der Vollständigkeit der Argumente auseinandersetzen.
So weit so gut. Was passiert nun aber, wenn irgendwo unterhalb der funktion ein TypeError verursacht wird? dann wird der fälschlicherweise gefangen, und das ist imho schlimmer als ihn nicht zu fangen, da er falsch interpretiert wird.
eine alternative wäre hier LBYL, was aber unpythonic wäre.
ich bin schon häufiger auf das problem gestossen, auch in anderen formen. gibt es da einen hübschen weg, der sich mir zZ entzieht?