Python

Spracovanie výnimiek v Pythone

Spracovanie výnimiek v Pythone
Keď spustíme akýkoľvek kód, ktorý obsahuje chybu, potom sa chyba zobrazí na výstupe zastavením vykonávania programu. Niektoré chyby nemusia byť používateľmi rozpoznané a vytvárajú pre ne nežiaducu situáciu. Ak sa však chyba môže zobraziť v zrozumiteľnom formáte pre používateľov, je pre nich ľahké zistiť dôvod chyby. V akomkoľvek objektovo orientovanom programovaní, Skús chytiť alebo skús chytiť-konečne blok sa používa na spracovanie chýb a ich zobrazenie v čitateľnom formáte, ktorý sa nazýva spracovanie výnimiek. V tejto príručke je uvedené, ako je možné spracovať výnimky v skripte Python.

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.

Ako používať Xdotool na stimuláciu kliknutí a stlačenia myši v systéme Linux
Xdotool je bezplatný a otvorený nástroj príkazového riadku na simuláciu kliknutí a stlačenia klávesov myši. Tento článok sa bude týkať stručného sprie...
Top 5 ergonomických produktov pre počítačové myši pre Linux
Spôsobuje dlhodobé používanie počítača bolesť zápästia alebo prstov? Trpíte stuhnutými kĺbmi a neustále si musíte podávať ruky? Cítite pálivú bolesť z...
Ako zmeniť nastavenie myši a touchpadu pomocou systému Xinput v systéme Linux
Väčšina distribúcií systému Linux sa štandardne dodáva s knižnicou „libinput“ na spracovanie vstupných udalostí v systéme. Dokáže spracovať vstupné ud...