Функција са изузетком у Пајтону

Изузетке је веома погодно бацати, прописујући их у функцији користећи услове.

Хајде да направимо функцију get_sum, која ће израчунавати збир елемената листе само ако је дужина листе мања или једнака 3. У супротном, нека се баци наш изузетак ToBigLength:

pythondef get_sum(lst):
  if len(lst) <= 3:
    return sum(lst)
  else:
    raise ToBigLength

Сада проследимо у функцију get_sum листу и испишимо резултат у конзолу:

pythonlst = [1, 2, 3, 4]

print(get_sum(lst)) # исписаће 6

Такође у функцијама је могуће задати хватање више типова изузетака. Хајде да креирамо још једну класу изузетака ToSmallLength:

pythonclass ToSmallLength(Exception):
  pass

Сада ћемо у функцији прописати услов, ако је дужина листе једнака нули, нека се баци ToSmallLength. Ако се ни један изузетак не ухвати, нека се испише збир свих елемената листе:

pythondef get_sum(lst):
  if len(lst) > 3:
    raise ToBigLength
  if len(lst) == 0:
    raise ToSmallLength
  else:
    return sum(lst)

Због погодности можемо ставити листу, која ће се прослећивати као параметар функције, саму функцију и њен позив у блок try. А хватање наша два изузетка сместимо у блокове except:

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

Направите функцију која ће као параметар примати број. У њој пропишите услове, ако је број негативан или једнак нули, нека се баце одговарајући изузеци. У супротном нека број буде помножен са 3.

Задание 2

Проверите рад креиране функције помоћу конструкције try-except. При томе такође ухватите ваше изузетке.