Ausnahme in Python erneut auslösen

Aditya Raj 21 Juni 2023
  1. Auslösen einer Ausnahme in Python
  2. Ausnahme mit benutzerdefinierter Nachricht in Python auslösen
  3. Ausnahme in Python erneut auslösen
Ausnahme in Python erneut auslösen

Python stellt uns try-except-Blöcke zur Verfügung, um Ausnahmen in unseren Programmen zu behandeln. Es gibt uns auch die Anweisung raise, um manuell eine Ausnahme auszulösen.

In diesem Artikel wird erläutert, wie wir eine Ausnahme in einem Python-Programm erneut auslösen können.

Auslösen einer Ausnahme in Python

Wir können die Anweisung raise verwenden, um eine Ausnahme in einem Programm auszulösen. Die Syntax für die raise-Anweisung lautet wie folgt.

raise exception_name

Hier nimmt die raise-Anweisung eine Ausnahme namens Ausnahme_Name als Eingabe und löst die Ausnahme aus, die der Python-Interpreter behandelt.

Beispielsweise können wir in unserem Programm mit der Anweisung raise eine Ausnahme ValueError auslösen.

  1. Das folgende Programm fordert den Benutzer auf, eine Zahl als Eingabe mit der Funktion input() zu geben. Die Funktion input() gibt die Eingabe als String zurück, der der Variablennummer zugeordnet ist.

  2. Danach prüft das Programm, ob die Eingabe nur aus Ziffern besteht (oder nicht). Dazu verwenden wir die Methode isdigit().

    Die Methode isdigit() prüft, wenn sie für einen String aufgerufen wird, ob alle Zeichen des Strings Dezimalziffern sind oder nicht. Wenn ja, wird True zurückgegeben; andernfalls wird False zurückgegeben.

number = input("Please Enter a number:")
if number.isdigit():
    number = int(number)
    square = number * number
    print("The square of {} is {}".format(number, square))
else:
    raise ValueError

Ausgang:

Please Enter a number:Aditya
Traceback (most recent call last):
  File "/home/aditya1117/PycharmProjects/pythonProject/webscraping.py", line 7, in <module>
    raise ValueError
ValueError

Wenn im obigen Programm die Eingabe des Benutzers nur aus Dezimalziffern besteht, wird der Code im if-Block ausgeführt. Daher wird die Eingabe mit der Funktion int() in eine Ganzzahl umgewandelt.

Schließlich wird das Quadrat der ganzen Zahl berechnet und ausgegeben.

Wenn die Eingabe des Benutzers aus anderen Zeichen als Dezimalziffern besteht, wird der Code innerhalb der else-Anweisung ausgeführt und das Programm löst eine ValueError-Ausnahme aus.

Hier ist die Ausnahme ValueError eine eingebaute Ausnahme.

Ausnahme mit benutzerdefinierter Nachricht in Python auslösen

Wir können auch eine benutzerdefinierte Ausnahme mit einer benutzerdefinierten Nachricht auslösen. Dazu erstellen wir mit dem Konstruktor Exception() ein Ausnahmeobjekt.

Der Konstruktor Exception() nimmt eine Nachrichtenzeichenfolge als Eingabeargument und gibt nach der Ausführung eine Ausnahme zurück. Wir können die benutzerdefinierte Ausnahme mit der Anweisung raise auslösen, wie im folgenden Beispiel gezeigt.

number = input("Please Enter a number:")
if number.isdigit():
    number = int(number)
    square = number * number
    print("The square of {} is {}".format(number, square))
else:
    raise Exception("The input contains characters other than decimal digits.")

Ausgang:

Please Enter a number:Aditya
Traceback (most recent call last):
  File "/home/aditya1117/PycharmProjects/pythonProject/webscraping.py", line 7, in <module>
    raise Exception("The input contains characters other than decimal digits.")
Exception: The input contains characters other than decimal digits.

Hier sehen Sie, dass das Programm eine benutzerdefinierte Ausnahme mit der Meldung Die Eingabe enthält andere Zeichen als Dezimalziffern. auslöst.

Ausnahme in Python erneut auslösen

Ausnahmen werden in Python mit try-except-Blöcken behandelt. Wenn eine Ausnahme in einem try-Block geworfen wird, wird sie im except-Block abgefangen und es werden entsprechende Maßnahmen ergriffen.

Sie können dies im folgenden Beispiel beobachten.

number = input("Please Enter a number:")
try:
    if number.isdigit():
        number = int(number)
        square = number * number
        print("The square of {} is {}".format(number, square))
    else:
        raise Exception("The input contains characters other than decimal digits.")
except Exception:
    print("In the except block. exception handled.")

Ausgang:

Please Enter a number:Aditya
In the except block. exception handled.

Hier wird die Ausnahme im try-Block ausgelöst. Dann fangen wir die Ausnahme im Block außer ab, behandeln sie bei Bedarf und geben eine entsprechende Meldung aus.

Wenn Sie die Ausnahme in Ihrem Python-Programm erneut auslösen möchten, können Sie die Anweisung raise im Block except verwenden, wie unten gezeigt.

number = input("Please Enter a number:")
try:
    if number.isdigit():
        number = int(number)
        square = number * number
        print("The square of {} is {}".format(number, square))
    else:
        raise Exception("The input contains characters other than decimal digits.")
except Exception:
    print("In the except block. exception handled. Rethrowing exception.")
    raise

Ausgang:

Please Enter a number:Aditya
In the except block. exception handled. Rethrowing exception.
Traceback (most recent call last):
  File "/home/aditya1117/PycharmProjects/pythonProject/webscraping.py", line 8, in <module>
    raise Exception("The input contains characters other than decimal digits.")
Exception: The input contains characters other than decimal digits.

In diesem Beispiel haben wir zuerst die Ausnahme im Block außer abgefangen und behandelt. Danach haben wir die Anweisung raise verwendet, um die Ausnahme in Python erneut auszulösen.

Autor: Aditya Raj
Aditya Raj avatar Aditya Raj avatar

Aditya Raj is a highly skilled technical professional with a background in IT and business, holding an Integrated B.Tech (IT) and MBA (IT) from the Indian Institute of Information Technology Allahabad. With a solid foundation in data analytics, programming languages (C, Java, Python), and software environments, Aditya has excelled in various roles. He has significant experience as a Technical Content Writer for Python on multiple platforms and has interned in data analytics at Apollo Clinics. His projects demonstrate a keen interest in cutting-edge technology and problem-solving, showcasing his proficiency in areas like data mining and software development. Aditya's achievements include securing a top position in a project demonstration competition and gaining certifications in Python, SQL, and digital marketing fundamentals.

GitHub

Verwandter Artikel - Python Exception