Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Inzicht in de Uitzonderingshiërarchie | Comprehensive Error Handling
Python Structureel Programmeren

Inzicht in de Uitzonderingshiërarchie

Veeg om het menu te tonen

Bij het werken met foutafhandeling in Python is het belangrijk om de structuur van de ingebouwde exceptieklassen te begrijpen. Alle exceptions erven van de basisklasse BaseException. De meeste excepties die je in dagelijkse code zult tegenkomen, zijn subklassen van Exception, die zelf een directe afgeleide is van BaseException. Dit ontwerp maakt het mogelijk om brede categorieën van fouten op te vangen of specifieke problemen te behandelen.

Veelgebruikte excepties zoals ValueError, TypeError, KeyError en IOError (ook bekend als OSError in moderne Python-versies) zijn allemaal subklassen van Exception. Er zijn ook meer gespecialiseerde excepties, zoals ZeroDivisionError en IndexError, die van deze algemene klassen erven. Sommige excepties, zoals KeyboardInterrupt en SystemExit, erven direct van BaseException – deze zijn meestal niet bedoeld om in normale programma's te worden opgevangen.

Inzicht in deze hiërarchie helpt bij het schrijven van nauwkeurige try/except-blokken, waarbij alleen wordt opgevangen wat bedoeld is en het maskeren van kritieke systeem-signalen wordt voorkomen.

1234567891011121314151617181920212223242526272829303132
def raise_and_catch_exceptions(): # Catching a ValueError try: int("not a number") except ValueError as ve: print("Caught ValueError:", ve) # Catching a ZeroDivisionError (subclass of ArithmeticError) try: result = 10 / 0 except ZeroDivisionError as zde: print("Caught ZeroDivisionError:", zde) # Catching a TypeError try: result = "10" + 5 except TypeError as te: print("Caught TypeError:", te) # Catching an OSError (formerly IOError) try: open("file_that_does_not_exist.txt") except OSError as oe: print("Caught OSError:", oe) # Catching a general Exception (will catch most, but not all, exceptions) try: raise KeyError("missing key") except Exception as e: print("Caught Exception:", type(e).__name__, "-", e) raise_and_catch_exceptions()

1. Welke ingebouwde exception-klasse zou je gebruiken om fouten op te vangen bij het proberen een string naar een integer te converteren die niet geconverteerd kan worden?

2. Welke ingebouwde exception wordt opgegooid wanneer je probeert een dictionary-sleutel te benaderen die niet bestaat?

question mark

Welke ingebouwde exception-klasse zou je gebruiken om fouten op te vangen bij het proberen een string naar een integer te converteren die niet geconverteerd kan worden?

Selecteer het correcte antwoord

question mark

Welke ingebouwde exception wordt opgegooid wanneer je probeert een dictionary-sleutel te benaderen die niet bestaat?

Selecteer het correcte antwoord

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 1

Vraag AI

expand

Vraag AI

ChatGPT

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

Sectie 1. Hoofdstuk 1
some-alt