Ausnahme in Python erneut auslösen
- Auslösen einer Ausnahme in Python
- Ausnahme mit benutzerdefinierter Nachricht in Python 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.
-
Das folgende Programm fordert den Benutzer auf, eine Zahl als Eingabe mit der Funktion
input()
zu geben. Die Funktioninput()
gibt die Eingabe als String zurück, der der Variablennummer zugeordnet ist. -
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, wirdTrue
zurückgegeben; andernfalls wirdFalse
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.
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