Das except:pass
-Konstrukt unterdrückt im Wesentlichen alle außergewöhnlichen Bedingungen, die während der Ausführung des im try:
-Block abgedeckten Codes auftreten.
Was diese Praxis schlecht macht, ist, dass es normalerweise nicht das ist, was du wirklich möchtest. Oft tritt eine spezifische Bedingung auf, die du unterdrücken möchtest, und except:pass
ist ein zu grobes Werkzeug. Es erledigt die Aufgabe, verbirgt aber auch andere Fehlerbedingungen, die du wahrscheinlich nicht vorhergesehen hast, aber durchaus auf andere Weise behandeln möchtest.
Was dies insbesondere in Python wichtig macht, ist, dass nach den Gepflogenheiten dieser Sprache Ausnahmen nicht unbedingt Fehler sind. Sie werden natürlich oft auf diese Weise verwendet, wie in den meisten Sprachen. Aber Python hat sie gelegentlich verwendet, um einen alternativen Ausgangspfad aus einigen Codeaufgaben zu implementieren, der nicht wirklich Teil des normalen Ablaufs ist, aber bekannt ist, von Zeit zu Zeit vorzukommen und in den meisten Fällen sogar erwartet wird. SystemExit
wurde bereits als altes Beispiel genannt, aber das heutzutage am häufigsten verwendete Beispiel könnte StopIteration
sein. Die Verwendung von Ausnahmen auf diese Weise führte zu viel Kontroverse, insbesondere als Iteratoren und Generatoren erstmals in Python eingeführt wurden, aber schließlich setzte sich die Idee durch.