Im Anschluss ist mein Code:Typeerror: Ausnahmen müssen im alten Stil Klassen sein oder von BaseException abgeleitet, str nicht
test = 'abc'
if True:
raise test + 'def'
Und wenn ich diese laufen, es gibt mir die TypeError
TypeError: exceptions must be old-style classes or derived from BaseException, not str
So Welche Art von Typ sollte die test
sein?
Können Sie sich erklären, warum es so schlecht ist eine Zeichenfolge als eine Ausnahme zu erhöhen? – BioGeek
@BioGeek Probleme mit String-Ausnahmen funktionieren nur manchmal, wenn ein Literal sowohl in 'raise' als auch in' except' verwendet wird. Es wird kein OO-Mechanismus zum Anhängen von zusätzlichen Informationen an die Exception und zum Abfangen von Kategorien mehrerer Exception-Typen bereitgestellt . Ausnahmen wurden der Sprache vor den Klassen hinzugefügt, und sobald Ausnahmenklassen hinzugefügt wurden, wurden Zeichenfolgenausnahmen nur aus Gründen der Abwärtskompatibilität beibehalten. Ihr Entfernen, wie jedes Entfernen von (Fehl-) Merkmalen, vereinfachte die Sprache. –
Vielen Dank für die Erwähnung der Version, in der diese Funktion zuletzt unterstützt wurde. Das hat mir geholfen. – SpaceTrucker