Funcție cu excepție în Python
Excepțiile sunt foarte convenabile de aruncat, prin specificarea lor în funcții cu ajutorul condițiilor.
Haideți să facem o funcție get_sum,
care va returna suma elementelor
listei doar dacă lungimea listei este mai mică
sau egală cu 3. În caz contrar,
să fie aruncată excepția noastră ToBigLength:
def get_sum(lst):
if len(lst) <= 3:
return sum(lst)
else:
raise ToBigLength
Acum să transmitem în funcția get_sum
o listă și să afișăm rezultatul funcției în consolă:
lst = [1, 2, 3, 4]
print(get_sum(lst)) # va afișa 6
De asemenea, în funcții se poate specifica interceptarea
mai multor tipuri de excepții. Haideți
să creăm încă o clasă de excepții ToSmallLength:
class ToSmallLength(Exception):
pass
Acum să specificăm în funcție condiția, dacă
lungimea listei este egală cu zero, atunci să fie aruncată
excepția ToSmallLength. Dacă nici o excepție
nu este aruncată, atunci să fie returnată
suma tuturor elementelor listei:
def get_sum(lst):
if len(lst) > 3:
raise ToBigLength
if len(lst) == 0:
raise ToSmallLength
else:
return sum(lst)
Pentru comoditate, putem include lista care
va fi transmisă în parametrul funcției,
funcția însăși și apelul ei într-un bloc try.
Iar interceptarea celor două excepții o vom plasa
în blocurile except:
try:
lst = [1, 2, 3]
res = get_sum(lst)
print(res)
except ToBigLength:
print('error 1')
except ToSmallLength:
print('error 2')
Creați o funcție care ca parametru va
primi un număr. În ea specificați condiții:
dacă numărul este negativ sau egal cu zero, atunci
să fie aruncate excepțiile corespunzătoare.
în caz contrar numărul să fie
înmulțit cu 3.
Verificați funcționarea funcției create de dvs.
cu ajutorul construcției try-except. În
același timp interceptați și excepțiile dvs.