Junior
Aké sú vlastnosti spracovania výnimiek v Pythone?
sobes.tech AI
Odpoveď od AI
Výnimky v Pythone sú udalosti, ktoré narušujú štandardný priebeh vykonávania programu. Predstavujú objekty, ktoré označujú chyby.
Vlastnosti:
- Hierarchia výnimiek: Všetky vstavané výnimky sú triedy a sú organizované do hierarchie založenej na dedičnosti od základnej triedy
BaseException.# Príklad hierarchie # BaseException -> Exception -> StandardError -> ... # Exception -> ArithmeticError -> ZeroDivisionError - Bloky
try...except...: Hlavný mechanizmus spracovania výnimiek.try: # Kód, ktorý môže spôsobiť výnimku result = 10 / 0 except ZeroDivisionError: # Spracovanie konkrétnej výnimky print("Delenie nulou!") except Exception as e: # Spracovanie iných výnimiek print(f"Vyskytla sa chyba: {e}") - Viac
exceptblokov: Umožňujú spracovanie rôznych typov výnimiek odlišne.try: # Kód value = int("abc") except ValueError: print("Neplatný formát čísla.") except TypeError: print("Neplatný dátový typ.") - Blok
else: Spúšťa sa, ak bloktryskončí bez výnimky.try: # Kód result = 10 / 2 except ZeroDivisionError: print("Delenie nulou!") else: print("Operácia úspešne dokončená.") - Blok
finally: Vždy sa vykoná, bez ohľadu na to, či došlo k výnimke alebo nie. Používa sa na uvoľnenie zdrojov.file = None try: file = open("myfile.txt", "r") # Čítanie zo súboru except FileNotFoundError: print("Súbor nebol nájdený.") finally: if file: file.close() # Zaručené zatvorenie súboru - Operátor
raise: Používa sa na jasné vyvolanie výnimky.def divide(a, b): if b == 0: raise ZeroDivisionError("Nemožno deliť nulou") return a / b try: divide(10, 0) except ZeroDivisionError as e: print(f"Chyba: {e}") - Vlastné výnimky: Môžete vytvárať vlastné triedy výnimiek dediace od
Exceptionalebo inej existujúcej triedy výnimiek.class CustomError(Exception): pass def process_data(data): if not data: raise CustomError("Dáta sú prázdne") try: process_data([]) except CustomError as e: print(f"Chyba: {e}") - Spracovanie výnimiek s použitím kontextového manažéra
with: Zjednodušuje prácu s prostriedkami, ktoré vyžadujú explicitné zatvorenie (napríklad súbory).try: with open("myfile.txt", "r") as file: # Práca so súborom content = file.read() except FileNotFoundError: print("Súbor nebol nájdený.") # Súbor sa automaticky zatvorí pri opustení bloku 'with' - Lanenie výnimiek: Pri spracovaní výnimky je možné zachovať informácie o predchádzajúcej spracovanej výnimke (implicitne alebo s použitím
raise Exception from another_exception).
Tieto vlastnosti poskytujú flexibilný a výkonný mechanizmus spracovania chýb v Pythone, umožňujúci vytvárať spoľahlivejšie a odolnejšie voči zlyhaniam programy.