Het opvangen van verschillende soorten uitzonderingen in Python
In dezelfde code kan het nodig zijn verschillende soorten uitzonderingen op te vangen.
Stel dat we een uitzondering moeten opvangen bij delen door nul. Bij dit soort fout wordt de uitzondering gegenereerd:
ZeroDivisionError: division by zero
Om deze op te vangen, moet de naam van de uitzondering
worden geschreven in het except blok:
try:
print(1 / 0)
except ZeroDivisionError:
print('error: do not divide by zero')
Stel dat we ook een lijst hebben:
lst = [1, 2, 3]
Als je in het try blok code plaatst met een andere
potentiële fout, bijvoorbeeld het weergeven van
een niet-bestaand element, dan zal de uitzondering,
die niet wordt opgevangen in het except blok, verder
gaan en worden weergegeven in de console. Hierdoor
stopt de code met werken:
lst = [1, 2, 3]
try:
print(lst[4]) # geeft IndexError: list index out of range
except ZeroDivisionError:
print('error: do not divide by zero')
Om deze situatie op te lossen, moet je in elk blok de naam van het corresponderende type uitzondering opgeven. Laten we aan onze code een uitzondering voor een ontbrekend element toevoegen:
try:
print(lst[4])
except ZeroDivisionError:
print('error: do not divide by zero')
except IndexError:
print('error: elem is not exist')
Gegeven de volgende code:
txt = '2'
res1 = txt + 3
res2 = txt1
Schrijf code om de gepresenteerde
uitzonderingen in de variabelen res1 en res2
op te vangen.