Whatsapp Telegram Telegram Call Anrufen

Fehler- und Ausnahmemanagement in Python


Fehler- und Ausnahmemanagement ist ein wesentlicher Bestandteil der Programmierung, um sicherzustellen, dass Programme robust und benutzerfreundlich sind. In Python wird das Ausnahmemanagement hauptsächlich durch try, except, else, finally und benutzerdefinierte Ausnahmen realisiert. Dieser Artikel behandelt die erweiterte Fehlerbehandlung und die Erstellung benutzerdefinierter Ausnahmen.

1. Erweiterte Fehlerbehandlung

Erweiterte Fehlerbehandlung ermöglicht es Ihnen, spezifische Fehler gezielt abzufangen und angemessen darauf zu reagieren. Dies umfasst die Verwendung mehrerer except-Blöcke, das Erfassen aller Ausnahmen und die Verwendung der else- und finally-Blöcke.

1.1 Mehrere except-Blöcke:

Sie können mehrere except-Blöcke verwenden, um unterschiedliche Arten von Ausnahmen zu behandeln.

Beispiel:

try:
    zahl = int(input("Geben Sie eine Zahl ein: "))
    ergebnis = 10 / zahl
except ValueError:
    print("Ungültige Eingabe! Bitte geben Sie eine gültige Zahl ein.")
except ZeroDivisionError:
    print("Fehler! Division durch Null ist nicht erlaubt.")
else:
    print(f"Das Ergebnis ist: {ergebnis}")
finally:
    print("Die Berechnung ist abgeschlossen.")

Ausgabe:

Geben Sie eine Zahl ein: 0
Fehler! Division durch Null ist nicht erlaubt.
Die Berechnung ist abgeschlossen.

Erklärung:

  • try-Block: Enthält den Code, der potenziell Fehler verursachen kann.
  • except-Blöcke: Fangen spezifische Ausnahmen ab und behandeln sie.
  • else-Block: Wird ausgeführt, wenn keine Ausnahme auftritt.
  • finally-Block: Wird immer ausgeführt, unabhängig davon, ob eine Ausnahme auftritt oder nicht.

1.2 Erfassen aller Ausnahmen:

Sie können einen allgemeinen except-Block verwenden, um alle möglichen Ausnahmen zu erfassen.

Beispiel:

try:
    zahl = int(input("Geben Sie eine Zahl ein: "))
    ergebnis = 10 / zahl
except Exception as e:
    print(f"Ein Fehler ist aufgetreten: {e}")
else:
    print(f"Das Ergebnis ist: {ergebnis}")
finally:
    print("Die Berechnung ist abgeschlossen.")

Ausgabe:

Geben Sie eine Zahl ein: abc
Ein Fehler ist aufgetreten: invalid literal for int() with base 10: 'abc'
Die Berechnung ist abgeschlossen.

Erklärung:

  • except Exception as e: Fängt jede Ausnahme ab und speichert die Fehlermeldung in der Variable e.

2. Benutzerdefinierte Ausnahmen

Benutzerdefinierte Ausnahmen ermöglichen es Ihnen, spezifische Fehlerzustände in Ihrem Programm zu definieren und zu behandeln. Benutzerdefinierte Ausnahmen werden durch das Erstellen neuer Klassen definiert, die von der eingebauten Exception-Klasse erben.

Beispiel:

class UngueltigeEingabeFehler(Exception):
    pass

def zahl_pruefen(zahl):
    if zahl < 0:
        raise UngueltigeEingabeFehler("Die Zahl darf nicht negativ sein!")

try:
    zahl = int(input("Geben Sie eine positive Zahl ein: "))
    zahl_pruefen(zahl)
except UngueltigeEingabeFehler as e:
    print(f"Fehler: {e}")
except ValueError:
    print("Ungültige Eingabe! Bitte geben Sie eine gültige Zahl ein.")
else:
    print(f"Die eingegebene Zahl ist: {zahl}")
finally:
    print("Die Prüfung ist abgeschlossen.")

Ausgabe:

Geben Sie eine positive Zahl ein: -5
Fehler: Die Zahl darf nicht negativ sein!
Die Prüfung ist abgeschlossen.


Erklärung:

  • class UngueltigeEingabeFehler(Exception): Definiert eine benutzerdefinierte Ausnahmeklasse.
  • raise UngueltigeEingabeFehler("Die Zahl darf nicht negativ sein!"): Löst die benutzerdefinierte Ausnahme aus, wenn die Bedingung erfüllt ist.

Zusammenfassung

Erweiterte Fehlerbehandlung und benutzerdefinierte Ausnahmen sind mächtige Werkzeuge, um Python-Programme robuster und benutzerfreundlicher zu gestalten. Durch die Verwendung von mehreren except-Blöcken, else- und finally-Blöcken sowie benutzerdefinierten Ausnahmen können Sie spezifische Fehlerzustände gezielt behandeln und die Integrität Ihres Programms sicherstellen. Indem Sie diese Techniken in Ihren Python-Programmen anwenden, verbessern Sie die Fehlerbehandlung und sorgen für eine bessere Benutzererfahrung.








CEO Image

Ali Ajjoub

info@ajjoub.com

Adresse 0049-15773651670

Adresse Jacob-winter-platz,1 01239 Dresden

Buchen Sie jetzt Ihren Termin für eine umfassende und individuelle Beratung.

Termin Buchen

Kontaktieren Sie uns

Lassen Sie uns K o n t a k t aufnehmen!