Benutzerdefinierte Python-Ausnahmen definieren

Beginner

This tutorial is from open-source community. Access the source code

Einführung

Benutzerdefinierte Ausnahmen werden durch Klassen definiert.

class NetworkError(Exception):
    pass

Ausnahmen erben immer von Exception.

Normalerweise sind es leere Klassen. Verwenden Sie pass für den Körper.

Sie können auch eine Hierarchie Ihrer Ausnahmen erstellen.

class AuthenticationError(NetworkError):
     pass

class ProtocolError(NetworkError):
    pass

Übung 4.11: Definieren einer benutzerdefinierten Ausnahme

Es ist oft eine gute Praxis für Bibliotheken, ihre eigenen Ausnahmen zu definieren.

Dadurch ist es einfacher, zwischen Python-Ausnahmen zu unterscheiden, die als Reaktion auf übliche Programmierfehler ausgelöst werden, und Ausnahmen, die von einer Bibliothek absichtlich ausgelöst werden, um ein bestimmtes Verwendungsproblem anzuzeigen.

Ändern Sie die Funktion create_formatter() aus der letzten Übung so, dass sie eine benutzerdefinierte FormatError-Ausnahme auslöst, wenn der Benutzer einen ungültigen Formatnamen angibt.

Beispiel:

>>> from tableformat import create_formatter
>>> formatter = create_formatter('xls')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "tableformat.py", line 80, in create_formatter
    raise FormatError(f"Unknown table format {name}")
tableformat.FormatError: Unknown table format xls
>>>

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Lab Defining Exceptions abgeschlossen. Sie können in LabEx weitere Labs ausprobieren, um Ihre Fähigkeiten zu verbessern.