Python Zpracování výjimek: zkuste, chyťte, nakonec a zvedněte [Příklad]

V čem je zpracování výjimek Python?

Výjimkou je chyba, ke které dojde v době provádění programu. Při spuštění programu však Python vygeneruje výjimku, která by měla být ošetřena, aby se zabránilo pádu vašeho programu. V Python jazyk, výjimky se spouštějí automaticky při chybách, nebo je může spustit a zachytit váš kód.

Výjimka označuje, že ačkoli k události může dojít, k tomuto typu události dochází zřídka. Když metoda není schopna zpracovat výjimku, je vyvolána její volající funkci. Nakonec, když je vyhozena výjimka z hlavní funkce, program je náhle ukončen.

Běžné příklady výjimek

  • Dělení nulou
  • Přístup k souboru, který neexistuje.
  • Přidání dvou nekompatibilních typů
  • Pokus o přístup k neexistujícímu indexu sekvence
  • Odebrání tabulky z odpojeného databázového serveru.
  • Výběr z bankomatu vyšší, než je dostupná částka

Proč byste měli používat výjimky?

Zde jsou důvody pro použití výjimek v Python:

  • Zpracování výjimek umožňuje oddělit kód pro zpracování chyb od normálního kódu.
  • Výjimkou je a Python objekt což představuje chybu.
  • Stejně jako u komentářů ke kódu vám výjimky pomáhají připomenout si, co program očekává.
  • Vyjasňuje kód a zlepšuje čitelnost.
  • Umožňuje stimulovat důsledky, protože řešení chyb probíhá na jednom místě a jedním způsobem.
  • Výjimkou je pohodlný způsob zpracování chybových zpráv.
  • In Python, můžete v programu vyvolat výjimku pomocí metody zvýšení výjimky.
  • Vyvolání výjimky vám pomůže přerušit aktuální provádění kódu a vrátí výjimku zpět do očekávání, dokud nebude zpracována.
  • Zpracování výjimek pro komponenty, které je nemohou přímo zpracovat.

Pravidla výjimek

Zde jsou některá základní pravidla Python zpracování výjimek:

  • Výjimky musí být objekty třídy
  • Pro výjimky třídy můžete použít příkaz try s klauzulí výjimkou, která zmiňuje konkrétní třídu.
  • I když je příkaz nebo výraz syntakticky správný, může při pokusu o jeho provedení zobrazit chybu.
  • Chyby nalezené během provádění se nazývají výjimky a nejsou bezpodmínečně fatální.

Python Mechanismus zpracování výjimek

Zpracování výjimek je řízeno následujícími 5 klíčovými slovy:

  1. vyzkoušet
  2. úlovek
  3. Konečně
  4. hod

Python Zkuste Statement

Příkaz try obsahuje klíčové slovo try, za nímž následuje dvojtečka (:) a sada kódů, ve kterých se mohou vyskytnout výjimky. Má jednu nebo více klauzulí.

Pokud se během provádění příkazu try nevyskytly žádné výjimky, interpret ignoruje obsluhu výjimek pro tento konkrétní příkaz try.

V případě, že dojde k nějaké výjimce ve zkušební sadě, zkušební sada vyprší a řízení programu se přenese na odpovídající obslužnou rutinu kromě obsluhy následující za zkušební sadou.

Syntax:
try:
statement(s)

Prohlášení o úlovku

Bloky Catch berou vždy jeden argument, což je typ výjimky, kterou pravděpodobně zachytí. Tyto argumenty se mohou pohybovat od konkrétního typu výjimky, která se může lišit, až po univerzální kategorii výjimek.

Pravidla pro catch blok:

  • Blok catch můžete definovat pomocí klíčového slova catch
  • Parametr Catch Exception je vždy uzavřen v závorkách
  • Vždy představuje typ výjimky, kterou blok catch zpracovává.
  • Mezi dvěma {} složenými závorkami je zapsán kód zpracování výjimek.
  • Do jednoho pokusného bloku můžete umístit více bloků catch.
  • Blok catch můžete použít až po bloku try.
  • Všechny bloky catch by měly být seřazeny od podtřídy do nadtřídy.

Příklad:

try
}
catch (ArrayIndexOutOfBoundsException e) {
System.err.printin("Caught first " + e.getMessage()); } catch (IOException e) {
System.err.printin("Caught second " + e.getMessage());
}

Konečně prohlášení v Python

Nakonec se blok vždy provede bez ohledu na to, zda byla nebo nebyla vyvolána výjimka. Poslední klíčové slovo umožňuje vytvořit blok kódu, který následuje po bloku try-catch.

Konečně, doložka je nepovinná. Je určen k definování akcí čištění, které by měly být provedeny za všech podmínek.

try:
    raise KeyboardInterrupt
finally:
    print 'welcome, world!'
Output
Welcome, world!
KeyboardInterrupt

Nakonec se před příkazem try provede klauzule.

Zvýšit prohlášení v Python

Příkaz raise specifikuje argument, který inicializuje objekt výjimky. Zde následuje čárka za názvem výjimky a argumentem nebo n-ticí argumentu, který následuje za čárkou.

Syntaxe:

raise [Exception [, args [, traceback]]]

V této syntaxi je argument volitelný a v době provádění je hodnota argumentu výjimky vždy žádná.
Příklad:
A Python výjimkou může být jakákoli hodnota, jako je řetězec, třída, číslo nebo objekt. Většina z těchto výjimek, které jsou vyvolány Python core jsou třídy s argumentem, který je instancí třídy.

důležitý Python chyby

Typ chyby Description
Aritmetická chyba ArithmeticError funguje jako základní třída pro všechny aritmetické výjimky. Vyvolá se kvůli chybám v aritmetických operacích.
ImportError ImportError se vyvolá, když se pokoušíte importovat modul, který se nenachází. K tomuto typu výjimky dochází, pokud jste provedli typing chyba v názvu modulu nebo modul, který není přítomen ve standardní cestě.
Chyba indexu Při pokusu o odkaz na sekvenci, která je mimo rozsah, se objevila chyba IndexEroris.
KeyError Když konkrétní klíč není ve slovníku nalezen, je vyvolána výjimka KeyError.
NameError Chyba NameError je vyvolána, když je na jméno odkazováno v kódu, který nikdy neexistuje v místním nebo globálním oboru názvů.
ValueError Chyba hodnoty je vyvolána, když funkce nebo vestavěná operace obdrží argument, který může být správného typu, ale nemá vhodnou hodnotu.
EOFchyba Tento druh chyby se objeví, když jedna z vestavěných funkcí (input() nebo raw_input()) dosáhne podmínky EOF bez čtení jakýchkoli dat.
ZeroDivisonError Tento typ chyby se objeví, když dojde k dělení nebo modulu nulou pro všechny číselné typy.
IOError- Tento druh chyby se objevil, když selže vstupní/výstupní operace.
chyba syntaxe SyntaxErrors vyvolány, když dojde k chybě v Python syntax.
IndentationError Tato chyba se objevila, když odsazení není správně definováno

Ostatní Důležité Python b) Výjimky

Výjimka Description
Aritmetická výjimka Aritmetická chyba, jako je dělení nulou.
Výjimka ArraylndexOutOfBounds Index pole je mimo rozsah.
Výjimka ArrayStore Přiřazení vám pomůže k prvku pole nekompatibilního typu.
ClassCastException Neplatné obsazení
Výjimka MlegalMonitorState Nelegální operace monitoru, jako je čekání na odemčené vlákno.
MlegalStateException Prostředí nebo aplikace je ve špatném stavu.
ClassNotFoundException Třída nenalezena.
CloneNotSupportedException Pokus o klonování objektu, který neimplementuje rozhraní Cloneable.
Výjimka z nelegálního přístupu Přístup do třídy je odepřen.
InstantiationException Dochází k tomu, když se pokusíte vytvořit objekt rozhraní nebo abstractřída t.
CloneNotSupportedException Pokus o klonování objektu, který neimplementuje rozhraní.

Chyba vs. výjimky

Chyba b) Výjimky
Všechny chyby v Python jsou nezaškrtnutým typem. Mezi výjimky patří zaškrtnutý i nezaškrtnutý typ.
Za běhu dochází k chybám, které kompilátor nezná. Výjimky lze obnovit jejich zpracováním pomocí bloků try-catch.
Chyby jsou většinou způsobeny prostředím, ve kterém aplikace běží. Samotná aplikace způsobuje výjimky.
Příklady:
Chyba nedostatku paměti
Příklady:
Zaškrtnuté výjimky, výjimka SQL, výjimka NullPointerException atd.

Shrnutí

  • Výjimkou je chyba, ke které došlo během provádění programu.
  • Výjimka označuje, že ačkoli k události může dojít, k tomuto typu události dochází zřídka.
  • Běžné příklady výjimek jsou 1) Dělení nulou, 2) Přístup k neexistujícímu souboru, 3) Přidání dvou nekompatibilních typů.
  • Výjimkou je a Python objekt, který představuje chybu.
  • Příkaz try obsahuje klíčové slovo try, za nímž následuje dvojtečka (:) a sada kódů, ve kterých se mohou vyskytnout výjimky. Má jednu nebo více klauzulí.
  • Bloky Catch berou vždy jeden argument, což je typ výjimky, kterou pravděpodobně zachytí.
  • Příkaz raise specifikuje argument, který inicializuje objekt výjimky.
  • Nakonec se blok vždy provede bez ohledu na to, zda je výjimka vyvolána nebo ne.

Shrňte tento příspěvek takto: