⊗pyPmExcCt 75 of 129 menu

Zachytávání výjimek v Pythonu

V Pythonu ve srovnání s jinými programovacími jazyky existuje velmi mnoho situací, které vyvolávají výjimky.

Pojďme se na ně podívat podrobněji. Předpokládejme, že máme následující seznam:

lst = [1, 2, 3]

Přistoupíme k neexistujícímu prvku seznamu:

print(lts[4])

Po provedení kodu se vypíše chyba (výjimka):

IndexError: list index out of range

Pokud potřebujeme pokračovat v práci bez výpisu výjimky, měli bychom ji zachytit pomocí konstrukce try-except. Ta má následující syntaxi:

try: # kód, který může vyvolat výjimku except: # ošetření chyby

V bloku try by měl být umístěn kód, který může obsahovat výjimku. Pokud při provádění tohoto kódu nastane výjimečná situace, provedení kódu se nezastaví, ale přejde do kódu bloku except. V tomto bloku by měl být napsán výpis zprávy, co nejpřesněji popisující podstatu vzniklé chyby.

Pokud při provádění bloku try nenastane žádná výjimečná situace, užitečný kód se jednoduše provede a kód z bloku except - ne.

Pojďme zachytit naši výjimku při přístupu k neexistujícímu prvku seznamu. K tomu umístíme do bloku try kód s potenciální chybou. A v bloku except zadáme výpis do konzole zprávy 'error: elem is not exist':

lst = [1, 2, 3] try: print(lst[4]) except: print('error: elem is not exist')

Po provedení kódu se vypíše:

'error: elem is not exist'

Po prostudování konstrukce try-except by se měl změnit styl vašeho psaného kódu. Nyní je třeba všechny místa, kde může nastat výjimečná situace, obalit try, a v bloku except popsat reakci na tuto výjimku.

Zeptejte se uživatele na dvě čísla. Vydělte jedno druhým. Zachyťte výjimečnou situaci dělení nulou.

Zeptejte se uživatele na číslo. Najděte druhou odmocninu tohoto čísla. Zachyťte výjimečnou situaci odmocňování záporného čísla.

Je dán seznam. Zeptejte se uživatele na celé číslo. Získejte prvek seznamu, jehož číslo zadal uživatel. Zachyťte výjimečnou situaci, která nastane, pokud uživatel zadal číslo mimo rozsah seznamu.

Je dán následující kód:

num = '5' res = num + 2 print(res)

Co je s tímto kódem špatně? Opravte jeho nedostatky.

Je dán následující kód:

lst = [1, 2, 3, 4] def getElem(iter): print(iter[4]) getElem(lst)

Co je s tímto kódem špatně? Opravte jeho nedostatky.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout