Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Auslösen von Ausnahmen in Python: Fehler Auslösen und Verwalten | Fehlerbehandlung
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Python Fortgeschrittene Konzepte

bookAuslösen von Ausnahmen in Python: Fehler Auslösen und Verwalten

Ausnahmen in Python sollten ausgelöst werden, um anzuzeigen, dass ein Fehlerzustand aufgetreten ist, der es einer Funktion oder Methode unmöglich macht, ihre beabsichtigte Aufgabe auszuführen. Dies ist besonders nützlich in Situationen, in denen das einfache Zurückgeben von None oder einem ähnlichen Wert mehrdeutig sein könnte und möglicherweise nicht ausreichend vermittelt, dass ein Fehler aufgetreten ist.

Auslösen einer Standardausnahme

Um in Python eine Ausnahme auszulösen, wird die raise-Anweisung verwendet. Hier ein einfaches Beispiel:

123456789
def calculate_age(birth_year): import datetime current_year = datetime.datetime.now().year age = current_year - birth_year if age < 0: raise ValueError("The birth year cannot be in the future") return age calculate_age(2034)
copy

In diesem Beispiel wird eine ValueError ausgelöst, wenn birth_year größer als das aktuelle Jahr ist, was darauf hinweist, dass das angegebene Geburtsjahr ungültig ist.

Eigene Ausnahmen erstellen

Obwohl die eingebauten Ausnahmen von Python viele verschiedene Szenarien abdecken, kann es manchmal notwendig sein, eigene Ausnahmen zu definieren, um einen für den eigenen Anwendungsbereich spezifischen Fehlerzustand klar auszudrücken.

Eigene Ausnahmen definieren

Eigene Ausnahmen werden typischerweise von der eingebauten Exception-Klasse oder einer ihrer Unterklassen abgeleitet. So kann eine eigene Ausnahme definiert werden:

1234567891011
class RegistrationError(Exception): """Base class for all registration-related exceptions.""" pass class UsernameTooShort(RegistrationError): """Raised when the username is too short.""" pass class PasswordTooWeak(RegistrationError): """Raised when the password is too weak.""" pass
copy

Hinweis

Erinnern Sie sich an das Vererbungskonzept aus der objektorientierten Programmierung 😉

Hier ist ein praxisnahes Beispiel für die Verwendung benutzerdefinierter Ausnahmen. Machen Sie sich keine Sorgen um die Schlüsselwörter else und as im Beispiel; diese werden wir im nächsten Kapitel behandeln.

123456789101112131415161718192021222324252627282930
# Custom exceptions class RegistrationError(Exception): pass class UsernameTooShort(RegistrationError): pass class PasswordTooWeak(RegistrationError): pass # Functions to validate registration def validate_username(username): if len(username) < 6: raise UsernameTooShort("Username must be at least 6 characters long") def validate_password(password): if len(password) < 8: raise PasswordTooWeak("Password must be at least 8 characters long") def register_user(username, password): try: validate_username(username) validate_password(password) except RegistrationError as error: print(f"Registration failed: {error}") else: print("User registered successfully!") # Test the registration function register_user("john", "123") # This should fail
copy
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 2

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

bookAuslösen von Ausnahmen in Python: Fehler Auslösen und Verwalten

Swipe um das Menü anzuzeigen

Ausnahmen in Python sollten ausgelöst werden, um anzuzeigen, dass ein Fehlerzustand aufgetreten ist, der es einer Funktion oder Methode unmöglich macht, ihre beabsichtigte Aufgabe auszuführen. Dies ist besonders nützlich in Situationen, in denen das einfache Zurückgeben von None oder einem ähnlichen Wert mehrdeutig sein könnte und möglicherweise nicht ausreichend vermittelt, dass ein Fehler aufgetreten ist.

Auslösen einer Standardausnahme

Um in Python eine Ausnahme auszulösen, wird die raise-Anweisung verwendet. Hier ein einfaches Beispiel:

123456789
def calculate_age(birth_year): import datetime current_year = datetime.datetime.now().year age = current_year - birth_year if age < 0: raise ValueError("The birth year cannot be in the future") return age calculate_age(2034)
copy

In diesem Beispiel wird eine ValueError ausgelöst, wenn birth_year größer als das aktuelle Jahr ist, was darauf hinweist, dass das angegebene Geburtsjahr ungültig ist.

Eigene Ausnahmen erstellen

Obwohl die eingebauten Ausnahmen von Python viele verschiedene Szenarien abdecken, kann es manchmal notwendig sein, eigene Ausnahmen zu definieren, um einen für den eigenen Anwendungsbereich spezifischen Fehlerzustand klar auszudrücken.

Eigene Ausnahmen definieren

Eigene Ausnahmen werden typischerweise von der eingebauten Exception-Klasse oder einer ihrer Unterklassen abgeleitet. So kann eine eigene Ausnahme definiert werden:

1234567891011
class RegistrationError(Exception): """Base class for all registration-related exceptions.""" pass class UsernameTooShort(RegistrationError): """Raised when the username is too short.""" pass class PasswordTooWeak(RegistrationError): """Raised when the password is too weak.""" pass
copy

Hinweis

Erinnern Sie sich an das Vererbungskonzept aus der objektorientierten Programmierung 😉

Hier ist ein praxisnahes Beispiel für die Verwendung benutzerdefinierter Ausnahmen. Machen Sie sich keine Sorgen um die Schlüsselwörter else und as im Beispiel; diese werden wir im nächsten Kapitel behandeln.

123456789101112131415161718192021222324252627282930
# Custom exceptions class RegistrationError(Exception): pass class UsernameTooShort(RegistrationError): pass class PasswordTooWeak(RegistrationError): pass # Functions to validate registration def validate_username(username): if len(username) < 6: raise UsernameTooShort("Username must be at least 6 characters long") def validate_password(password): if len(password) < 8: raise PasswordTooWeak("Password must be at least 8 characters long") def register_user(username, password): try: validate_username(username) validate_password(password) except RegistrationError as error: print(f"Registration failed: {error}") else: print("User registered successfully!") # Test the registration function register_user("john", "123") # This should fail
copy
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 2
some-alt