Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Exception Chaining en Opnieuw Opwerpen | Comprehensive Error Handling
Python Structureel Programmeren

Exception Chaining en Opnieuw Opwerpen

Veeg om het menu te tonen

Bij het afhandelen van fouten in Python kun je situaties tegenkomen waarin het opvangen van de ene uitzondering ertoe leidt dat je een andere uitzondering moet opwerpen. In deze gevallen is het belangrijk om de context van de oorspronkelijke fout te behouden. Python's exception chaining maakt dit mogelijk met het sleutelwoord from. Door uitzonderingen expliciet te koppelen, geef je meer gedetailleerde tracebacks, waardoor het eenvoudiger wordt om de volgorde van fouten die tot een mislukking hebben geleid te begrijpen.

Stel dat je een functie schrijft die invoer uit een bestand verwerkt. Als er een fout optreedt tijdens het lezen van het bestand, wil je mogelijk een aangepaste uitzondering opwerpen die beter past bij de logica van je applicatie, maar je wilt ook informatie over de oorspronkelijke fout behouden. Met raise NewException() from original_exception kun je precies dat doen.

Het opnieuw opwerpen van uitzonderingen is een verwante techniek. Soms wil je na het opvangen van een uitzondering eerst wat opruimwerk of logging uitvoeren en daarna de uitzondering verder laten doorgeven. Dit doe je eenvoudig door alleen raise te gebruiken zonder een uitzondering te specificeren, waarmee de laatst opgevangen uitzondering opnieuw wordt opgegooid. Zowel exception chaining als het opnieuw opwerpen zijn waardevol voor het schrijven van robuuste, goed te debuggen code.

12345678910111213141516
# Simple exception chaining and re-raising example def divide(a, b): try: return a / b except ZeroDivisionError as err: # Chain a new exception to the original raise ValueError("Cannot divide by zero") from err try: divide(5, 0) except ValueError as e: print("Caught ValueError:") import traceback traceback.print_exc() print("\nRe-raising the exception...\n") raise

Deze code demonstreert eenvoudige exception chaining en het opnieuw opwerpen van uitzonderingen in Python. De functie divide probeert twee getallen te delen en vangt een ZeroDivisionError op, die wordt gekoppeld aan een nieuwe ValueError met een duidelijke boodschap. Het buitenste try-except-blok vangt de ValueError op, print de volledige traceback die beide uitzonderingen toont, en werpt vervolgens de uitzondering opnieuw op om deze verder te laten propagëren.

question mark

Wat is een belangrijk voordeel van exception chaining in Python?

Selecteer het correcte antwoord

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 6

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 6
some-alt