Ist es in Python sinnvoll, mit isinstance nach einem bestimmten Ausnahmetyp zu suchen?

8

Ist es in Python vernünftig, eine generische Ausnahme abzufangen und dann isinstance() zu verwenden, um den spezifischen Typ der Ausnahme zu erkennen, um sie entsprechend zu behandeln?

Ich spiele gerade mit dem dnspython-Toolkit herum, das eine Reihe von Ausnahmen für Dinge wie ein Timeout, eine NXDOMAIN-Antwort usw. hat. Diese Ausnahmen sind Unterklassen von dns.exception.DNSException , also frage ich mich, ob es vernünftig ist oder pythonisch, um DNSException abzufangen, dann überprüfe mit isinstance() nach einer bestimmten Ausnahme.

z.B.

%Vor%

Ich bin neu bei Python, sei also sanft!

    
Vortura 11.02.2012, 23:41
quelle

2 Antworten

16

Dafür gibt es mehrere except -Klauseln:

%Vor%

Seien Sie vorsichtig bei der Reihenfolge der Klauseln: Die erste übereinstimmende Klausel wird übernommen, also verschieben Sie die Prüfung für die Superklasse bis zum Ende.

    
Sven Marnach 11.02.2012, 23:43
quelle
1

Von dns.resolver können Sie einige Ausnahmen importieren. (ungetesteter Code)

%Vor%     
Andre Manzano 02.12.2013 08:35
quelle