2016-09-22 2 views
-2

Ich frage mich nur, wenn Sie versuchen .. außer, was ist der Unterschied zwischen der Verwendung der Basis-Klasse "außer" und mit einer bestimmten Ausnahme wie "ImportError" oder "IOError" oder andere spezifische Ausnahme. Gibt es Vor- und Nachteile zwischen dem einen und dem anderen?Python Ausnahme Basisklasse vs spezifische Ausnahme

+0

speziell überprüfen https://docs.python.org/3/tutorial/errors.html und sehen „wenn seine Art die Ausnahme nach dem Schlüsselwort except Namen übereinstimmt“; Es geht nicht darum, was Sie in der Except-Klausel tun können, sondern darum, wie die Kontrolle dahin geht oder nicht –

Antwort

5

Niemals die Basisausnahme abfangen. Erfassen Sie immer nur die spezifischen Ausnahmen, mit denen Sie umgehen können. Alles andere sollte in Ruhe gelassen werden; Andernfalls verbergen Sie möglicherweise wichtige Fehler.

0

Natürlich hat es Vorteile mit der richtigen Ausnahme für das entsprechende Problem. Python hat jedoch bereits alle möglichen Fehler für Codierungsprobleme definiert. Sie können jedoch eigene Ausnahmeklassen erstellen, indem Sie die Klasse Exception erben. Auf diese Weise können Sie für bestimmte Teile Ihres Codes aussagekräftigere Fehler machen. Sie können sogar die Erwartungen Druckfehler wie folgt machen.

SomeError: 10 should have been 5. 

Bietet leichteres Debugging des Codes.

For more info.