Abfangen verschiedener Exception-Typen in Python
In ein und demselben Code kann es notwendig sein, verschiedene Typen von Exceptions abzufangen.
Nehmen wir an, wir müssen eine Exception bei Division durch Null abfangen. Bei dieser Art von Fehler wird folgende Exception ausgegeben:
ZeroDivisionError: division by zero
Um sie abzufangen, sollte der Name der Exception
im except-Block angegeben werden:
try:
print(1 / 0)
except ZeroDivisionError:
print('error: do not divide by zero')
Nehmen wir außerdem an, wir haben eine Liste:
lst = [1, 2, 3]
Wenn man im try-Block Code mit einem anderen
potenziellen Fehler platziert, zum Beispiel mit der Ausgabe
eines nicht existierenden Elements, dann wird die Exception,
die nicht im except-Block abgefangen wird, weiter
propagiert und in der Konsole ausgegeben. Dadurch
wird die Codeausführung gestoppt:
lst = [1, 2, 3]
try:
print(lst[4]) # gibt IndexError: list index out of range aus
except ZeroDivisionError:
print('error: do not divide by zero')
Um diese Situation zu lösen, muss man in jedem Block den Namen des entsprechenden Exception-Typs angeben. Fügen wir unserem Code eine Exception für ein fehlendes Element hinzu:
try:
print(lst[4])
except ZeroDivisionError:
print('error: do not divide by zero')
except IndexError:
print('error: elem is not exist')
Gegeben ist der folgende Code:
txt = '2'
res1 = txt + 3
res2 = txt1
Schreiben Sie Code, um die in den Variablen
res1 und res2 auftretenden
Exceptions abzufangen.