Heim > Backend-Entwicklung > Python-Tutorial > Ausnahmebehandlung in Python

Ausnahmebehandlung in Python

Mary-Kate Olsen
Freigeben: 2024-12-06 20:19:12
Original
774 Leute haben es durchsucht

Exception Handling in Python

In diesem Artikel werden die verschiedenen Techniken zur Behandlung von Ausnahmen in Python untersucht, einschließlich Try-Exception-Blöcken, benutzerdefinierten Ausnahmen und erweiterten Funktionen wie Ausnahmeverkettung und -anreicherung.


Python bietet ein robustes Ausnahmebehandlungs-Framework, das es Programmierern nicht nur ermöglicht, Code zu implementieren, der Abstürze verhindert, sondern auch Feedback bietet und die Anwendungsstabilität aufrechterhält. Darüber hinaus ermöglicht es Entwicklern, Fehler mithilfe von Konstrukten wie Try-Exception-Blöcken, benutzerdefinierten Ausnahmen und mehr elegant zu verwalten.

- Der Try-Except-Block

Im Try-Except-Block wird der Code, der eine Ausnahme auslösen kann, im Try-Block platziert, und der Except-Block gibt die Aktionen an, die ausgeführt werden sollen, wenn eine Ausnahme auftritt (Python Software Foundation, o. J.).

Zum Beispiel:

try:
    result = 1 / 0
except ZeroDivisionError:
    print("Cannot divide by zero.")
Nach dem Login kopieren
Nach dem Login kopieren

Um mehrere Ausnahmen in einem Try-Except-Block abzufangen, können wir einen Try-Block mit mehreren Except-Blöcken verwenden, um spezifische Antworten für jeden Ausnahmetyp zu generieren. Oder wir können ein Tupel verwenden, um mehrere Ausnahmen mit einem einzigen Ausnahmeausdruck abzufangen.

Zum Beispiel:

# One try block and several except blocks
try:
    result = 1 / 'a'
except ZeroDivisionError:
    print("Cannot divide by zero.")
except TypeError:
    print("Type error occurred.")

# One try block and one except tuple block
try:
    # some operation
    result = 1 / 'a'
except (ZeroDivisionError, TypeError) as e:
    print(f"Error occurred: {e}")
Nach dem Login kopieren
Nach dem Login kopieren

- Die Else-Klausel

Die else-Klausel wird nach den Try-Exception-Blöcken platziert und ausgeführt, wenn der Try-Block keine Ausnahme auslöst.

Zum Beispiel:

try:
    result = 1 / 2
except ZeroDivisionError:
    print(“Cannot divide by zero.”)
else:
    print(“Division successful.”)
Nach dem Login kopieren

- Die Finalklausel

Die Final-Klausel wird immer nach dem Try-Block oder einem beliebigen Except-Block platziert. Es enthält Code, der auf jeden Fall ausgeführt wird, typischerweise zum Bereinigen von Ressourcen wie Dateien oder Netzwerkverbindungen, selbst wenn eine Ausnahme ausgelöst wurde.

Zum Beispiel:

try:
    result = 1 / ‘a’
except ZeroDivisionError:
    print(“Cannot divide by zero.”)
except TypeError:
    print(“Type error occurred.”)
else:
    print(“Division successful.”)
finally:
    print(“Goodbye, world!”)
Nach dem Login kopieren
  • Die Raise-Erklärung

Auslösen von Ausnahmen: Die Raise-Klausel löst Ausnahmen aus, indem sie das Auftreten einer Ausnahme erzwingt, normalerweise um anzuzeigen, dass eine bestimmte Bedingung nicht erfüllt wurde.

Zum Beispiel:

if ‘a’ > 5:
    raise ValueError(“A must not exceed 5”)
Nach dem Login kopieren

- Ausnahmeverkettung

Sie können Ausnahmen mit der Klausel raise verketten. Dies ist nützlich, um Kontext zu einem ursprünglichen Fehler hinzuzufügen.

Zum Beispiel

try:
    open(‘myfile.txt’)
except FileNotFoundError as e:
    raise RuntimeError(“Failed to open file”) from e
Nach dem Login kopieren

- Benutzerdefinierte Ausnahmen

Sie können Ihre eigenen Ausnahmeklassen definieren, indem Sie von der Ausnahmeklasse oder einer anderen integrierten Ausnahmeklasse erben (Mitchell, 2022).

Zum Beispiel:

class My_custom_ (Exception):
    pass

try:
    raise MyCustomError(“An error occurred”)
except MyCustomError as e:
    print(e)
Nach dem Login kopieren

- Bereichernde Ausnahmen

Sie können einer Ausnahme Informationen oder Kontext hinzufügen, indem Sie die Methode add_note() verwenden, um benutzerdefinierte Nachrichten oder Notizen an das Ausnahmeobjekt, auch bekannt als E, anzuhängen.

Zum Beispiel:

def divide_numbers(a, b):
    try:
        result = a / b
    except ZeroDivisionError as e:
        e.add_note(“Cannot divide by zero”)
        e.add_note(“Please provide a non-zero divisor”)
        raise
try:
    num1 = 10
    num2 = 0
    divide_numbers(num1, num2)
except ZeroDivisionError as e:
    print(“An error occurred:”)
    print(str(e))
Nach dem Login kopieren

Der Umgang mit Ausnahmen ist aus mehreren Gründen wichtig:

  1. Verhindert Programmabstürze: Nicht behandelte Ausnahmen können zum Absturz des Programms führen, was zu Datenverlust und einer schlechten Benutzererfahrung führt.
  2. Stellt aussagekräftige Fehlermeldungen bereit: Durch die Behandlung von Ausnahmen können Sie Benutzern informative Fehlermeldungen bereitstellen, die ihnen helfen, zu verstehen, was schief gelaufen ist und wie sie das Problem beheben können.
  3. Ermöglicht eine ordnungsgemäße Verschlechterung: Durch die Ausnahmebehandlung kann das Programm auch dann weiter ausgeführt werden, wenn ein Fehler auftritt.

Ein einfaches Beispiel für die Behandlung von Programmfehlern:

try:
    result = 1 / 0
except ZeroDivisionError:
    print("Cannot divide by zero.")
Nach dem Login kopieren
Nach dem Login kopieren
# One try block and several except blocks
try:
    result = 1 / 'a'
except ZeroDivisionError:
    print("Cannot divide by zero.")
except TypeError:
    print("Type error occurred.")

# One try block and one except tuple block
try:
    # some operation
    result = 1 / 'a'
except (ZeroDivisionError, TypeError) as e:
    print(f"Error occurred: {e}")
Nach dem Login kopieren
Nach dem Login kopieren

Zusammenfassend lässt sich sagen, dass Python ein umfassendes Ausnahmebehandlungs-Framework bietet, das es Programmen ermöglicht, mit unerwarteten Situationen umzugehen, ohne abrupt auszufallen. Durch die Verwendung von Konstrukten wie Try-Exception-Blöcken, benutzerdefinierten Ausnahmen und erweiterten Funktionen wie Ausnahmeverkettung und -anreicherung können Entwickler sicherstellen, dass ihre Programme belastbar, benutzerfreundlich und in der Lage sind, unerwartete Szenarien reibungslos zu bewältigen.


Referenzen:

Mitchell R (2022, 13. Juni). Benutzerdefinierte Ausnahmen. _Python Essential Training _[VIDEO]. LinkedIn-Lernen. https://www.linkedin.com/learning/python-essential-training-14898805/custom-Exceptions?autoSkip=true&resume=false&u=2245842

Python Software Foundation. (o.J.). 8. Fehler und Ausnahmen. Python. python.org.


Ursprünglich veröffentlicht unter Exception Handling in Python – Medium am 21. August 2024.

Das obige ist der detaillierte Inhalt vonAusnahmebehandlung in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage