Was macht dein Code eigentlich, wenn diese Exceptions auftauchen - loggst du sie, versuchst du es erneut, oder gehst du einfach stillschweigend weiter?
Der Grund, warum Leute auf spezifische Exceptions pochen, ist, dass ein nacktes `except:` oder `except Exception:` buchstäblich alles abfängt, auch Sachen, die du nicht erwartet hast und wahrscheinlich nicht abfangen solltest. Wenn du zum Beispiel versucht, eine Datei zu öffnen, und du fängst `FileNotFoundError` ab, ist das spezifisch und macht Sinn. Aber ein nacktes except fängt auch Sachen wie `KeyboardInterrupt` oder `SystemExit` ab, die du normalerweise durchlassen willst. Noch schlimmer ist, dass es Bugs versteckt - wenn dein Code einen Tippfehler oder einen Logikfehler hat, der etwas Unerwartetes auslöst, wirst du es nie sehen, weil die except-Klausel es aufgefressen hat.
Das gesagt - bei kleineren Scripts oder schnellen Sachen werden Leute pragmatisch. Der Unterschied zeigt sich wirklich, wenn du debuggst oder wenn dein Code an jemand anderen weitergegeben wird. Spezifische Exceptions machen deine Absicht klar - dieser Code weiß, wie er mit einer fehlenden Datei umgehen soll, aber nicht mit einem Datenbankverbindungsproblem. Wenn du was schreibst, das klein bleiben soll, ist `Exception` abfangen (nicht nacktes `except`) viel sicherer als ein pauschaler Handler, und du kannst zumindest sehen, was abgefangen wird. Wenn deine Projekte wachsen, wirst du spezifischer werden wollen. Die Gewohnheit, bewusst zu sein, was du abfängst, ist nicht nur Pedanterie - sie bewahrt dich vor mysteriösen Bugs später.