Python-da Istisna atan Funksiya

Istisnalari şertler vasitesile funksiyalarda teyin etmek cox rahatdir.

Gelin get_sum funksiyasini yaradaq, bu funksiya siyahinin elementlerinin cemin ancaq siyahinin uzunluqu 3-den kicik ve ya beraber olduqda qaytarsin. Əks halda, oz istisnamiz ToBigLength atilsin:

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

Indi get_sum funksiyasina bir siyahi otek ve funksiyani konsola çap edek:

pythonlst = [1, 2, 3, 4]

print(get_sum(lst)) # 6 çap edecek

Həmçinin, funksiyalarda bir neçə istisna novunun tutulmasini teyin etmek olar. Gelin bir istisna sinifi daha yaradaq ToSmallLength:

pythonclass ToSmallLength(Exception):
  pass

Indi funksiyada şerti teyin edek, əgər siyahinin uzunluqu sifira beraberdirse, ToSmallLength atilsin. Əgər heç bir istisna tutulmasa, o zaman siyahinin butun elementlerinin cemi çap olunsun:

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

Rahatliq üçün funksiyanin parametrine otekilecek siyahini, funksiyanin ozunu ve onun çağırılışını try blokunda yerləşdirmek olar. Iki istisnamizin tutulmasini isə except bloklarinda yerleşdirek:

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

Parametr kimi bir eded qebul eden bir funksiya yaradin. Onda şertler teyin edin, eger eded menfi ve ya sifira beraberdirse, u ygun istisnalar atilsin. Əks halda isə eded 3-e vurulsun.

Задание 2

Yaratdığınız funksiyanın işini try-except konstruksiyası vasitəsilə yoxlayın. Bunu edərkən sizin istisnalarınızı da tutun.