Wie wird FileNotFoundError gehandhabt, wenn "try .. except IOError" es nicht abfängt?

9

Wie kann ich einen Fehler bei Python 3 feststellen? Ich habe viel gegoogelt, aber keine der Antworten scheint zu funktionieren. Die Datei open.txt existiert nicht, daher sollte e.errno.

gedruckt werden

Das habe ich jetzt versucht:

Dies ist in meiner definierten Funktion

%Vor%

Ich drucke jedoch nichts, wenn ich diesen Fehler erhalte

%Vor%     
Thomas W 20.02.2015, 16:21
quelle

1 Antwort

13

FileNotFoundError ist eine Unterklasse von OSError , fange das oder die Ausnahme selbst:

%Vor%

Betriebssystem-Ausnahmen wurden in Python 3.3 überarbeitet; IOError wurde in OSError zusammengeführt. Siehe PEP 3151: Überarbeitung des OS- und IO-Ausnahmehierarchie Abschnitts in der Dokumentation zu neuen Funktionen.

Weitere Einzelheiten finden Sie im Abschnitt OS-Ausnahmen Weitere Informationen, scrollen Sie nach unten für eine Klassenhierarchie.

Das heißt, Ihr Code sollte immer noch funktionieren , da IOError jetzt ein Alias ​​für OSError :

ist %Vor%

Stellen Sie sicher, dass Sie Ihren Ausnahmebehandler an der richtigen Position platzieren. Sehen Sie sich das Traceback für die Ausnahme genau an, um sicherzustellen, dass Sie nicht verpasst haben, wo es tatsächlich ausgelöst wird. Nicht zuletzt hast du dein Python-Skript neu gestartet, oder?

    
Martijn Pieters 20.02.2015, 16:23
quelle