Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Exceptions Genereren in Python: Fouten Activeren en Beheren | Foutafhandeling in Python Beheersen
Python Structureel Programmeren

bookExceptions Genereren in Python: Fouten Activeren en Beheren

Exceptions in Python moeten worden opgegooid om aan te geven dat zich een foutconditie heeft voorgedaan, waardoor het voor een functie of methode onmogelijk wordt om de beoogde taak uit te voeren. Dit is vooral nuttig in situaties waarin het simpelweg retourneren van een None of een vergelijkbare waarde dubbelzinnig kan zijn en mogelijk niet voldoende aangeeft dat er een fout is opgetreden.

Een standaard-exceptie opwerpen

Om een exceptie in Python op te werpen, gebruikt u de raise-instructie. Hier is een eenvoudig voorbeeld:

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 dit voorbeeld wordt een ValueError opgegooid als de birth_year groter is dan het huidige jaar, wat aangeeft dat het opgegeven geboortejaar ongeldig is.

Aangepaste excepties maken

Hoewel de ingebouwde excepties van Python veel verschillende scenario's dekken, kan het soms nodig zijn om eigen excepties te definiëren om een foutconditie die specifiek is voor uw domein duidelijk uit te drukken.

Aangepaste excepties definiëren

Aangepaste excepties worden doorgaans afgeleid van de ingebouwde Exception-klasse of een van de subklassen daarvan. Hier ziet u hoe u een aangepaste exceptie kunt definiëren:

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

Opmerking

Hopelijk herinner je je het overervingsconcept uit OOP 😉

Hier volgt een praktisch voorbeeld van het gebruik van aangepaste uitzonderingen. Maak je geen zorgen over de else en as sleutelwoorden in het voorbeeld; deze worden in het volgende hoofdstuk behandeld.

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
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 2

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Suggested prompts:

Can you explain the difference between built-in and custom exceptions in Python?

How do I decide when to create a custom exception?

Can you show more examples of using custom exceptions in real-world scenarios?

bookExceptions Genereren in Python: Fouten Activeren en Beheren

Veeg om het menu te tonen

Exceptions in Python moeten worden opgegooid om aan te geven dat zich een foutconditie heeft voorgedaan, waardoor het voor een functie of methode onmogelijk wordt om de beoogde taak uit te voeren. Dit is vooral nuttig in situaties waarin het simpelweg retourneren van een None of een vergelijkbare waarde dubbelzinnig kan zijn en mogelijk niet voldoende aangeeft dat er een fout is opgetreden.

Een standaard-exceptie opwerpen

Om een exceptie in Python op te werpen, gebruikt u de raise-instructie. Hier is een eenvoudig voorbeeld:

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 dit voorbeeld wordt een ValueError opgegooid als de birth_year groter is dan het huidige jaar, wat aangeeft dat het opgegeven geboortejaar ongeldig is.

Aangepaste excepties maken

Hoewel de ingebouwde excepties van Python veel verschillende scenario's dekken, kan het soms nodig zijn om eigen excepties te definiëren om een foutconditie die specifiek is voor uw domein duidelijk uit te drukken.

Aangepaste excepties definiëren

Aangepaste excepties worden doorgaans afgeleid van de ingebouwde Exception-klasse of een van de subklassen daarvan. Hier ziet u hoe u een aangepaste exceptie kunt definiëren:

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

Opmerking

Hopelijk herinner je je het overervingsconcept uit OOP 😉

Hier volgt een praktisch voorbeeld van het gebruik van aangepaste uitzonderingen. Maak je geen zorgen over de else en as sleutelwoorden in het voorbeeld; deze worden in het volgende hoofdstuk behandeld.

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
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 2
some-alt