Python außer Keine

8

Gibt es unerwartete Nebenwirkungen bei der Verwendung von "except None"? Das Verhalten, das ich erwarte, ist, dass nichts von dieser Klausel erfasst wird, die ein paar kleine Tests zu bestätigen scheinen.

Hier ist ein grober Überblick darüber, was ich zu tun versuche. Wenn der Funktion kein Argument bereitgestellt wird, ist exceptions = None, wodurch die Klausel "except None" erstellt wird. Ich möchte nur überprüfen, dass ich nichts Unerwartetes erwische.

%Vor%     
Ben 11.10.2013, 21:10
quelle

1 Antwort

8

Funktioniert hier (unter Python 2.x).

%Vor%
  

Für eine except-Klausel mit einem Ausdruck wird dieser Ausdruck ausgewertet, und die Klausel stimmt mit der Ausnahme überein, wenn das resultierende Objekt mit der Ausnahme "kompatibel" ist. Ein Objekt ist kompatibel mit einer Ausnahme, wenn es sich um die Klasse oder eine Basisklasse des Ausnahmeobjekts handelt, oder ein Tupel, das ein Element enthält, das mit der Ausnahme kompatibel ist.

Quelle

Daher hat der Ausdruck keinen Ausnahmetyp, es wird einfach nicht übereinstimmen.

Dieses Verhalten wurde in Python 3.x geändert und der Ausdruck nach except muss ein Nachkomme von BaseException oder ein Tupel von solchen sein.

    
Ignacio Vazquez-Abrams 11.10.2013, 21:12
quelle

Tags und Links