Funkcia s výnimkou v Pythone
Výnimky je veľmi pohodlné vyhodiť, keď ich v funkcii zapíšeme pomocou podmienok.
Vytvorme funkciu get_sum,
ktorá vypíše súčet prvkov
zoznamu iba vtedy, ak je dĺžka zoznamu menšia
alebo rovná 3. V opačnom prípade
nech sa vyhodí naša výnimka ToBigLength:
def get_sum(lst):
if len(lst) <= 3:
return sum(lst)
else:
raise ToBigLength
Teraz odovzdajme funkcii get_sum
zoznam a vypíšme funkciu do konzoly:
lst = [1, 2, 3, 4]
print(get_sum(lst)) # vypíše 6
Vo funkciách je možné nastaviť aj zachytenie
viacerých typov výnimiek. Vytvorme
ďalšiu triedu výnimiek ToSmallLength:
class ToSmallLength(Exception):
pass
Teraz v funkcii zapíšme podmienku, že ak
je dĺžka zoznamu rovná nule, nech sa vyhodí
ToSmallLength. Ak sa neodchytí
žiadna výnimka, nech sa vypíše
súčet všetkých prvkov zoznamu:
def get_sum(lst):
if len(lst) > 3:
raise ToBigLength
if len(lst) == 0:
raise ToSmallLength
else:
return sum(lst)
Pre pohodlie môžeme uzavrieť zoznam, ktorý
sa odovzdá do parametra funkcie,
samotnú funkciu a jej volanie do bloku try.
A zachytenie našich dvoch výnimok umiestnime
do blokov except:
try:
lst = [1, 2, 3]
res = get_sum(lst)
print(res)
except ToBigLength:
print('error 1')
except ToSmallLength:
print('error 2')
Vytvorte funkciu, ktorá ako parameter bude
prijímať číslo. V nej zapíšte podmienky,
ak je číslo záporné a rovné nule,
nech sa vyhodia príslušné výnimky.
v opačnom prípade nech sa číslo
vynásobí 3.
Skontrolujte činnosť vytvorenej funkcie
pomocou konštrukcie try-except. Pri
tom tiež zachyťte vaše výnimky.