Syntax:
skúste:blokovať ..
okrem Výnimky:
psovod ..
inak:
blokovať ..
nakoniec:
blokovať ..
Tu sa vyskytne chyba pri vykonávaní príkazov skús blok potom sa vygeneruje vynimka a chyba sa hodi na prislusne okrem psovod. Naraz možno vygenerovať viac chýb skús blok a potom musíš napísať viac okrem manipulanti. Vyhlásenia inak blok sa vykoná, ak sa v systéme nevyskytne chyba skús blokovať. Vyhlásenia konečne blok sa vykoná, ak sa vyskytne alebo nenastane chyba. Na spracovanie výnimiek použite inak a konečne bloky nie sú podstatné. Rôzne typy spracovania výnimiek v pythone sú vysvetlené v nasledujúcej časti tutoriálu.
Príklad 1: Použitie jedného bloku try-kromě na overenie číselných údajov:
Tento príklad ukazuje veľmi jednoduché použitie spracovania výnimiek v Pythone. V skús bloku, od používateľa sa odoberú dva vstupy, jeden je hodnota reťazca a druhý je číselná hodnota. Ak užívateľ zadá akúkoľvek hodnotu reťazca namiesto číselnej hodnoty pre druhý vstup, potom, ValueError výnimku vygeneruje python3 a vlastné chybové hlásenie sa zobrazí od okrem blokovať.
#!/ usr / bin / env python3# Definujte blok try
skúste:
# Vezmite všetky údaje ako reťazec
name = input ("Zadajte svoje meno: \ n")
# Vezmite akékoľvek číselné údaje
age = int (vstup ("Zadajte svoj vek: \ n"))
# Vytlačte naformátované údaje s menom a vekom
print ("Ahoj% s, máš% s rokov.„% (meno, vek))
# spracovať chyby vstupu
okrem (ValueError):
# Vytlačiť vlastnú chybovú správu
print ("Chybný vstup! Musíte zadať číslo zodpovedajúce vášmu veku.„)
Výkon:
Skript sa vykoná dvakrát v nasledujúcom výstupe so nesprávnym vstupom a správnym vstupom. Prvýkrát, keď používateľ zadá „Tridsať jeden' ako veková hodnota pre druhý vstup, ktorý má číselnú hodnotu, potom a ValueError sa vygeneruje a chybové hlásenie sa zobrazí z bloku okrem. Druhýkrát sa pre správne vstupné hodnoty nevygeneruje žiadna chyba.
Príklad 2: Použitie viacerých blokov okrem bloku na spracovanie viacerých chýb:
V tomto príklade je uvedené, ako môžete na spracovanie viacerých chýb použiť blok okrem bloku. V tomto skripte sa budú spracovávať dva typy chýb. Názov súboru sa berie ako vstup od používateľa na čítanie. Ak súbor neexistuje, vygeneruje sa chyba IO výnimka a ak súbor existuje, ale je prázdny, vyvolá vlastnú výnimku. Na tento účel sa v tomto skripte používajú dva bloky okrem. Ak sa nevyskytne žiadna z chýb, zobrazí sa obsah súboru.
#!/ usr / bin / env python3# Import os modulu
import os
# Definujte blok try
skúste:
# Vezmite názov súboru ako vstup
názov súboru = vstup ('Zadajte názov súboru \ n')
# Otvorte súbor na čítanie
file_handler = otvorený (názov súboru)
# Nastavte hľadáčika od 0 do konca súboru
file_handler.hľadať (0, os.SEEK_END)
# Prečítajte si veľkosť súboru v bajtoch
veľkosť = obsluha súboru.povedz ()
# Vytlačte obsah súboru a počet znakov súboru
ak (veľkosť> 0):
# Nastaviť pontera na začiatok súboru
file_handler.hľadať (0)
# Čítajte a ukladajte obsah súboru do premennej
file_content = file_handler.čítať()
print ("\ nObsah súboru uvedený nižšie \ n")
print (file_content)
tlač ("Veľkosť súboru je% d bajtov"% veľkosť)
inak:
# Zvýšiť výnimku, ak je súbor prázdny
raise Exception ('Súbor nemá žiadny obsah.")
# Ak chybové hlásenie neexistuje, vytlačte ho
okrem chyby IOError ako chyby:
tlač (chyba)
# Ak je súbor prázdny, vytlačte ho
okrem Výnimky ako e:
print ('Chyba:% s'% e)
# Ak sa chyba nevyskytuje, správu vytlačte
inak:
tlač („Žiadna chyba sa nevyskytuje“)
Výkon:
Skript sa vykoná trikrát. Prvýkrát sa zadá názov súboru, ktorý neexistuje a na výstupe sa zobrazí správa IOError. Podruhé sa zadá názov súboru, ktorý existuje, ale nemá žiadny obsah a na výstupe je zobrazená vlastná správa. Po tretíkrát sa zadá názov súboru, ktorý existuje a obsahuje text. Výstup zobrazuje obsah súboru.
Príklad 3: Použitie bloku try-except-konečne na spracovanie chyby delenia
Príklad ukazuje použitie bloku try-except-konečne na spracovanie chyby delenia. Ako vstup sa použijú dve číselné hodnoty, ktoré v bloku try vydelia prvý vstup druhým vstupom. Môžu sa tu vyskytnúť dva typy chýb. Jeden je ValueError keď užívateľ napíše akúkoľvek hodnotu bez čísla a iná je ZeroDivisionError kedy bude užívateľ trvať 0 ako druhý vstup.
#!/ usr / bin / env python3# Definujte blok try
skúste:
# Zadajte dve čísla float
n1 = float (vstup ('Zadajte číslo \ n'))
n2 = float (vstup ('Zadajte číslo \ n'))
# Rozdeľte tieto čísla
delenie = n1 / n2
# Spracovať chyby
okrem (ZeroDivisionError, ValueError):
print ("Delené nulovou chybou alebo Hodnota nie je číslo")
# Vytlačte správu, ak sa nevyskytne chyba
inak:
print ("Výsledkom rozdelenia je% f"% rozdelenia)
# Vytlačte správu, ak sa vyskytne chyba alebo nie
nakoniec:
tlač („Koniec“)
Výkon:
Tu sa skript spustí dvakrát s obidvomi správnymi vstupmi a s druhým vstupom ako 0. Vygeneruje sa teda druhá výnimka, ktorá zobrazí chybové hlásenie.
Záver:
Tento tutoriál ukazuje základný proces spracovania výnimiek v python3 pre nových používateľov pythonu. Čitatelia budú po precvičení vyššie uvedených príkladov schopní pochopiť, čo je manipulácia s výnimkami a ako sa majú aplikovať v skripte python.