Python Try Except: Příklady krok za krokem

Jako programátor se můžete setkat se situacemi, kdy by váš kód mohl narazit na chyby nebo výjimky, takže je důležité pochopit, jak zacházet s různými typy chyb v kódu. Zpracování chyb je klíčovou součástí cyklu kódování. Jedním z běžných způsobů, jak zpracovat chyby v Pythonu, je použití techniky try-except.

Technika try-except se skládá z bloku try a bloku výjimky. Blok try obsahuje kód, který by mohl generovat chybu nebo výjimku, a blok kromě obsahuje kód pro zpracování těchto chyb nebo výjimek.

Python Try Except: Příklady krok za krokem

Když váš kód běží bez problémů v bloku try, blok kromě je vynechán. Pokud se však v bloku try vyskytne chyba nebo výjimka, spustí se kód, který jste zapsali do bloku s výjimkou, k vyřešení problému.

V tomto článku probereme blok try-expect v Pythonu , různé typy chyb a výjimek, se kterými se můžete při psaní kódu setkat, a jak s nimi zacházet pomocí příkazů try-except.

Jdeme do toho!

Obsah

Jaké jsou typy chyb v Pythonu?

V Pythonu lze chyby zhruba rozdělit do dvou hlavních typů:

1. Chyby syntaxe : Jsou také známé jako chyby analýzy způsobené nesprávnou gramatikou v kódu. Překladač Pythonu zjistí chyby syntaxe a zastaví provádění vašeho programu.

Následuje

print("Hello, world!"

V tomto příkladu chybí uzavírací závorka, takže Python této instrukci nerozumí, a proto se jedná o chybu syntaxe.

Python Try Except: Příklady krok za krokem

Výjimky : Výjimky nastanou, když se během provádění programu něco pokazí, i když je kód syntakticky správný. Mohou zahrnovat logické chyby nebo chyby za běhu, jako jsou neplatné vstupy nebo dělení nulou.

Následující funkce je příkladem výjimky v Pythonu:

print(5 / 0)

Tento řádek kódu způsobí výjimku ZeroDivisionError, ke které dojde, když se pokusíte vydělit číslo nulou.

Python Try Except: Příklady krok za krokem

Na obrázku výše můžete vidět, že došlo k výjimce, když jsme vydělili 5 x 0.

Nyní, když jste pochopili, jaké výjimky existují v Pythonu, uvidíme, jak můžeme zpracovat výjimky pomocí příkazu Try-Except v Pythonu. Podívejme se na syntaxi bloků Try a Except v Pythonu v další části.

Jaká je syntaxe Try and Except Block?

Syntaxe funkce definuje, jak byste tuto funkci měli používat ve svém kódu, včetně toho, jaké argumenty bere a co vrací.

Níže jsme uvedli syntaxi klauzule try a kromě bloků spolu s klauzulí else a nakonec bloky.

1. Syntaxe příkazu Try

Příkaz try vám umožňuje otestovat blok kódu na chyby. Když napíšete kód do bloku try , Python jej spustí jako normální součást vašeho programu.

Chcete-li použít příkaz try , jednoduše uzavřete svůj kód do bloku try :

try: # Your code here

2. Syntaxe klauzule Except

Klauzule výjimkou zpracovává chyby, které mohou nastat během provádění bloku try . Můžete zadat typ výjimky, kterou chcete zachytit, nebo použít obecný příkaz výjimkou ke zpracování všech výjimek.

Následující syntaxe ukazuje konkrétní typ výjimky:

try: # Your code here except ValueError: # Handle ValueError exception

Chcete-li zpracovat třídy výjimek v obecných nebo vícenásobných výjimkách, můžete použít syntaxi uvedenou níže:

try: # Your code here except Exception: # Handle any exception

3. Syntaxe Else klauzule/bloku

Klauzule else vám umožňuje spustit blok kódu, když v bloku try nejsou žádné chyby .

Chcete-li použít klauzuli else , můžete ji umístit za blok kromě , jak je znázorněno níže:

try: # Your code here except ValueError: # Handle ValueError exception else: # Code to execute when there are no errors

4. Syntaxe Final Block

Poslední blok vám umožňuje spustit kód bez ohledu na výsledek pokusu a kromě bloků . To může být užitečné pro akce, které chcete provést bez ohledu na to, zda byla vyvolána výjimka.

Chcete-li použít blok nakonec , můžete jej umístit za blok else :

try: # Your code here except ValueError: # Handle ValueError exception else: # Code to execute when there are no errors finally: # Code to execute regardless of the result of the try and except blocks

Abychom viděli výše uvedenou syntaxi v akci, podíváme se na příklad zpracování výjimek pomocí bloku try-except v Pythonu.

Zpracování výjimek pomocí Try-Except v Pythonu

Když dojde k chybě, Python se normálně zastaví a vygeneruje chybovou zprávu. Více výjimek můžete zpracovat pomocí bloku pokusů a výjimek .

V níže uvedeném příkladu zpracováváme dělení nulovou chybou, která byla dříve vygenerována při dělení 5 na 0.

try: print(5 / 0) except ZeroDivisionError: print("You can't divide by zero!")

V tomto kódu dojde k výjimce, ale program bude pokračovat v běhu a vypíše "Nelze dělit nulou!" místo zastavení s chybou.

Python Try Except: Příklady krok za krokem

Použití bloků try a kromě vám umožňuje řídit tok vašeho programu. Zpracováním konkrétních výjimek můžete poskytnout užitečnou zpětnou vazbu uživateli a udržet program spuštěný, když se objeví chyba.

Ve výše uvedeném příkladu můžete vidět, že jsme k řešení případu použili vestavěnou výjimku ZeroDivisionError. Podobně existují i ​​další typy vestavěných výjimek.

Znalost těchto typů výjimek vám pomůže rozhodnout, jaké očekávání použít, když narazíte na chybu v kódu Pythonu, takže se pojďme podívat na některé výjimky v další části.

Jaké jsou typy vestavěných výjimek?

V Pythonu jsou výjimky instance třídy odvozené od třídy BaseException. Když jsou zjištěny chyby, Python vyvolá výjimku. Existuje několik vestavěných výjimek, se kterými se pravděpodobně setkáte při psaní programů v Pythonu.

Pojďme se podívat na některé z nejběžnějších:

  1. ZeroDivisionError: K tomu dochází, když se pokusíte vydělit číslo nulou.

  2. NameError: Tato chyba se objeví, když se pokusíte použít proměnnou nebo funkci, která nebyla definována.

  3. ValueError : Nastane, když předáte argument správného typu, ale s neplatnou hodnotou.

  4. TypeError : Tato chyba nastane, když předáte argument nesprávného datového typu.

  5. FileNotFoundError : Nastane, když se pokusíte otevřít nebo získat přístup k neexistujícímu souboru.

  6. ImportError : Vyvoláno, když se pokusíte importovat modul nebo balíček, který neexistuje nebo jej nelze najít.

Mezi další relevantní výjimky patří:

  1. OverflowError: Tato chyba se objeví, když je výsledek výpočtu příliš velký na to, aby byl reprezentován.

  2. FloatingPointError: Tato chyba se vyvolá, když operace s pohyblivou řádovou čárkou selže.

  3. IndexError: Nastane, když se pokusíte o přístup k indexu, který je mimo rozsah sekvence (např. seznam nebo n-tice).

  4. KeyError: Vyskytuje se při pokusu o přístup ke klíči, který ve slovníku neexistuje.

  5. EOFError: Vyvoláno, když Python narazí na konec souboru (EOF) při čtení vstupu, obvykle z volání read().

  6. ArithmeticError: Nadtřída pro aritmetické výjimky, jako je ZeroDivisionError, OverflowError a FloatingPointError.

Někdy může být nutné použít uživatelem definované výjimky, jako je příkaz pass v bloku, kde se očekává výjimka. To by mělo být provedeno uvážlivě, protože by to mohlo potlačit další výjimky.

Poskytli jsme vám výše uvedený seznam běžných chyb výjimek, abyste jej mohli používat jako programy.

Vezměte prosím na vědomí, že většinu výjimek lze zachytit a zpracovat, ale měli byste věnovat pozornost zpracování nejnovějšího volání, abyste se vyhnuli vnořenému zpracování jiných případů výjimek.

V další části se podíváme na blok try-except v Pythonu. Jdeme do toho!

5 Případy použití Try-Except Block

Blok Try Except je jednou z široce používaných technik pro řešení chyb. Níže jsou uvedeny některé případy použití bloku Try Except v Pythonu:

1. Manipulace se soubory s výjimkou Try

Při práci se soubory vždy existuje možnost, že soubor neexistuje nebo se nenachází v umístění, ze kterého se k němu váš skript pokouší přistupovat.

Následující kód vyvolá výjimku, když se pokusíme otevřít soubor, který není přítomen.

try: with open('file.txt', 'r') as file: print(file.read()) except FileNotFoundError: print('Sorry, this file does not exist.')

V tomto kódu se pokoušíme otevřít a přečíst soubor s názvem 'file.txt'. Pokud 'file.txt' neexistuje, dojde k výjimce, ale místo chyby, která zastaví váš program, vypíše 'Litujeme, tento soubor neexistuje.'

Python Try Except: Příklady krok za krokem

2. Zpracování uživatelského vstupu s výjimkou Try

Vstup uživatele je další oblastí, kde se často vyskytují výjimky. Uživatelé mohou poskytnout data v neočekávaném formátu nebo zadat vstup, který je mimo přijatelný rozsah.

Následující příklad ukazuje, jak zpracovat uživatelský vstup pomocí bloku try-except:

try: age = int(input("Enter your age: ")) except ValueError: print("That's not a valid age. Please enter a number.")

V tomto kódu žádáme uživatele, aby zadal svůj věk. Pokud zadají něco, co nelze převést na celé číslo (jako slovo nebo písmeno), dojde k výjimce, ale místo toho, aby se program zhroutil, vypíše 'To není platný věk. Zadejte číslo.“

Python Try Except: Příklady krok za krokem

3. Přístup k neexistujícím klíčům slovníku

V Pythonu je slovník proměnlivý, neuspořádaný, kde každý klíč musí být jedinečný.

Když se pokusíte získat přístup ke klíči, který ve slovníku neexistuje, Python vyvolá KeyError. Ke zpracování této výjimky můžete použít try a výjimkou, jak je znázorněno v příkladu níže:

dictionary = {"key1": "value1", "key2": "value2"} try: print(dictionary["key3"]) except KeyError: print("The key does not exist in the dictionary.")

V tomto kódu se pokoušíte vytisknout hodnotu pro 'key3' ze slovníku. Pokud 'klíč3' ve slovníku neexistuje, dojde k výjimce, ale místo toho, aby se program zastavil s chybou, vypíše 'Klíč ve slovníku neexistuje.'

Python Try Except: Příklady krok za krokem

4. Převod řetězce na celé číslo

Mohou nastat situace, kdy budete chtít převést a na celé číslo. Ale pokud řetězec nepředstavuje platné celé číslo, Python vyvolá ValueError.

K řešení tohoto případu můžete použít try a kromě:

try: num = int("hello") except ValueError: print("That string can't be converted to integer.")

V tomto případě nelze 'hello' převést na celé číslo, takže Python vyvolá ValueError a vypíše 'Tento řetězec nelze převést na celé číslo.'

Python Try Except: Příklady krok za krokem

5. Import modulu

Když je , je možné, že modul neexistuje nebo není nainstalován. Python v takových případech vyvolá chybu ImportError.

Chcete-li tento případ vyřešit, můžete použít následující kód:

try: import some_module except ImportError: print("The module 'some_module' is not installed.")

Ve výše uvedeném příkladu, pokud 'some_module' není nainstalován nebo neexistuje, Python vyvolá ImportError a vypíše 'Modul 'some_module' není nainstalován.'

Python Try Except: Příklady krok za krokem

Chcete-li se dozvědět více o psaní kódu v Pythonu a zpracování očekávání, podívejte se na následující video:

Dále se podíváme na některé osvědčené postupy pro zpracování výjimek. Pojďme se do toho ponořit!

Nejlepší postupy zpracování výjimek

V této části jsme uvedli některé osvědčené postupy pro zpracování výjimek pomocí bloku Try Except. Některé osvědčené postupy pro zpracování výjimek jsou:

1. Buďte konkrétní s výjimkami

Při psaní kódu je zásadní zachytit výjimky co nejkonkrétněji. To znamená, že místo pouhého zachycení názvu obecné výjimky byste měli zachytit skutečný typ výjimky, který očekáváte.

Budete tak přesně vědět, k jaké chybě došlo, a budete ji moci náležitě řešit.

2. Nepotlačujte výjimky

Když se zabýváte výjimkami, můžete být v pokušení to prostě zachytit pomocí obsluhy výjimek a nic s tím nedělat. To je obecně špatný nápad.

Pokud dojde k chybě, je to obvykle proto, že je potřeba něco opravit. Pokud potlačíte třídu výjimky, chyba by mohla zůstat bez povšimnutí a později způsobit problémy.

3. Použijte Konečně pro kód čištění

Někdy máte nějaký kód, který musíte spustit bez ohledu na to, zda došlo k chybě nebo ne. Může to být něco jako zavření souboru nebo uvolnění některých zdrojů.

V těchto případech můžete použít konečný blok. Kód uvnitř bloku Konečně poběží bez ohledu na to, co se děje, takže je to skvělé místo pro vložení kódu pro čištění.

try: # Some code here finally: # This code will run no matter what

4. Uveďte výjimky, když je to nutné

Mohou nastat situace, kdy budete muset dát uživateli vašeho kódu vědět, že se něco pokazilo.

V těchto případech můžete vyvolat výjimku. To okamžitě zastaví provádění vašeho kódu a informuje uživatele, že došlo k chybě.

if not valid_input: raise ValueError("Your input was not valid!")

Pochopení a implementace těchto osvědčených postupů učiní váš kód robustnějším, snáze se ladí a zabrání neočekávaným selháním.

Závěrečné myšlenky

Abych to zakončil, vědět, jak používat try a kromě v Pythonu, opravdu pomáhá, když píšete svůj kód a setkáváte se v něm s výjimkami.

Umožňují vašemu programu, aby se s chybami vypořádal hladce, místo toho, aby se náhle zastavil. Je to způsob, jak zajistit, aby váš kód zvládl překvapení a mohl pokračovat.

Navíc, když použijete try a kromě, ukazuje to, že opravdu přemýšlíte o tom, co by se mohlo pokazit, a připravujete se na to. Udělejte si čas a naučte se tyto nástroje – jsou velmi užitečné při psaní kódu v Pythonu!


Vyhledávací pole PowerApps: Jak přidat a přizpůsobit

Vyhledávací pole PowerApps: Jak přidat a přizpůsobit

Naučte se, jak vytvořit vyhledávací pole PowerApps úplně od začátku a přizpůsobit je tak, aby odpovídalo celkovému tématu vaší aplikace.

Příklad SELECTEDVALUE DAX – Výběr kráječe sklizně

Příklad SELECTEDVALUE DAX – Výběr kráječe sklizně

Sklízejte nebo zachycujte hodnotu uvnitř míry a znovu ji použijte v jiném taktu pro dynamické výpočty pomocí SELECTEDVALUE DAX v LuckyTemplates.

Historie verzí v seznamech SharePoint

Historie verzí v seznamech SharePoint

Zjistěte, jak vám historie verzí na SharePointu může pomoci vidět vývoj určitých dat a kolika změn prošla.

Výběr barevných hexadecimálních kódů pro zprávy LuckyTemplates

Výběr barevných hexadecimálních kódů pro zprávy LuckyTemplates

Zde je nástroj pro vytváření sestav a vizuálů, výběr barevných hexadecimálních kódů, který můžete použít ke snadnému získání barev pro vaše sestavy LuckyTemplates.

Dynamický datový výřez v LuckyTemplates pomocí tabulky období

Dynamický datový výřez v LuckyTemplates pomocí tabulky období

Pomocí tabulky období můžete v přehledu snadno zobrazit časové období jako průřez. Použijte M kód k vytvoření dynamického datového výřezu v LuckyTemplates.

Tabulky proporcí a četností v Excelu

Tabulky proporcí a četností v Excelu

Chtěli jsme se ponořit do tabulek četností v Excelu a také do tabulek proporcí. Podívejte se, co to je a kdy je použít.

Ako nainštalovať DAX Studio & Tabular Editor v LuckyTemplates

Ako nainštalovať DAX Studio & Tabular Editor v LuckyTemplates

Zistite, ako stiahnuť a nainštalovať DAX Studio a Tabular Editor 3 a ako ich nakonfigurovať na použitie v LuckyTemplates a v Exceli.

LuckyTemplates Vizualizácia tvarovej mapy pre priestorovú analýzu

LuckyTemplates Vizualizácia tvarovej mapy pre priestorovú analýzu

Tento blog obsahuje vizualizáciu Shape Map pre priestorovú analýzu v LuckyTemplates. Ukážem vám, ako môžete efektívne využiť túto vizualizáciu s jej funkciami a prvkami.

LuckyTemplates Finančné výkazníctvo: Prideľovanie výsledkov šablónam v každom jednom riadku

LuckyTemplates Finančné výkazníctvo: Prideľovanie výsledkov šablónam v každom jednom riadku

V tomto návode predstavujem jedinečný nápad týkajúci sa finančného výkazníctva, ktorý spočíva v prideľovaní výsledkov na vopred určené šablóny tabuliek v rámci LuckyTemplates.

DAX měří v LuckyTemplates pomocí Measure Branching

DAX měří v LuckyTemplates pomocí Measure Branching

Vytvářejte míry DAX v LuckyTemplates pomocí existujících mír nebo vzorců. Tomu říkám technika větvení opatření.