Fehlerbehandlung in einem Context-Manager
In diesem Schritt erweitern Sie den Context-Manager, um Fehler zu behandeln, die innerhalb des Kontexts auftreten können. Schauen Sie sich den modifizierten InterstellarPortal-Context-Manager an.
In /home/labex/project/context_manager.py
:
class InterstellarPortal:
def __enter__(self):
print("Öffne das Portal in eine andere Dimension")
def __exit__(self, exc_type, exc_val, exc_tb):
print("Schließe das Portal")
if exc_type is not None:
print(f"Ein Fehler ist aufgetreten: {exc_type}, {exc_val}")
## Beispielverwendung
with InterstellarPortal():
print("Betrete das interstellare Portal")
1 / 0 ## Simuliere einen Fehler
Führen Sie das Skript aus:
python context_manager.py
Die folgenden Informationen sollten auf Ihrem Terminal angezeigt werden:
Öffne das Portal in eine andere Dimension
Betrete das interstellare Portal
Schließe das Portal
Ein Fehler ist aufgetreten: <class 'ZeroDivisionError'>, division by zero
Traceback (most recent call last):
File "/home/labex/project/context_manager.py", line 13, in <module>
1 / 0 ## Simuliere einen Fehler
ZeroDivisionError: division by zero