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:

pythondef 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ă:

pythonlst = [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:

pythonclass 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:

pythondef 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:

pythontry:
  lst = [1, 2, 3]
  res = get_sum(lst)
  print(res)
except ToBigLength:
  print('error 1')
except ToSmallLength:
  print('error 2')
Задание 1

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.

Задание 2

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.