Aké konštrukcie na spracovanie výnimiek existujú v Pythone?
Odpoveď od AI
sobes.tech AI
V Pythone sa používajú nasledujúce konštrukcie na spracovanie výnimiek:
-
try...except: Základ spracovania výnimiek. Bloktryobsahuje kód, ktorý môže spôsobiť výnimku. Ak dôjde k výnimke, vykoná sa príslušný blokexcept.# Príklady použitia try...except try: result = 10 / 0 # Pokus o delenie nulou except ZeroDivisionError: print("Chyba: Delenie nulou!") -
except Exception as e: Zachytáva akúkoľvek výnimku a priraďuje ju objektuena ďalšie spracovanie (napríklad logovanie alebo zobrazenie správy).# Zachytenie akejkoľvek výnimky try: value = int("abc") except Exception as e: print(f"Vyskytla sa chyba: {e}") -
Viaceré bloky
except: Umožňujú spracovať rôzne typy výnimiek odlišne.# Spracovanie viacerých typov výnimiek try: file = open("non_existent_file.txt", "r") content = file.read() file.close() except FileNotFoundError: print("Chyba: Súbor nebol nájdený!") except IOError: print("Chyba vstupu/výstupu!") -
except (...): Zlúčenie viacerých typov výnimiek do jedného bloku.# Zlúčenie typov výnimiek try: some_operation() except (ValueError, TypeError): print("Chyba hodnoty alebo typu!") -
try...except...else: Blokelsesa vykoná, ak v blokutrynedôjde k výnimke.# Použitie else try: num1 = 10 num2 = 2 result = num1 / num2 except ZeroDivisionError: print("Chyba: Delenie nulou!") else: print(f"Výsledok delenia: {result}") -
try...except...finally: Blokfinallysa vykoná vždy, bez ohľadu na to, či došlo k výnimke alebo nie. Používa sa na uvoľnenie zdrojov (napríklad zatvorenie súborov).# Použitie finally file = None try: file = open("data.txt", "r") content = file.read() except FileNotFoundError: print("Súbor nebol nájdený.") finally: if file: file.close() print("Súbor zatvorený.") -
raise: Umožňuje výslovne vyvolať výnimku.# Výslovné vyvolanie výnimky def validate_age(age): if age < 0: raise ValueError("Vek nemôže byť záporný!") return age try: validate_age(-5) except ValueError as e: print(f"Chyba pri validácii: {e}")