U Python, rukovanje pogreškama i iznimkama bitan je dio procesa programiranja. Prilikom pokretanja programa mogu se pojaviti neočekivane pogreške i iznimke. Rukovanje pogreškama i iznimkama omogućuje programu rukovanje i izvješćivanje o tim neočekivanim situacijama fleksibilno i na čitljiv način.
Rukovanje uobičajenim pogreškama( Exception Handling
)
U Python, koristimo try-except
blok za obradu uobičajenih pogrešaka. Struktura try-except
omogućuje programu da izvrši blok koda u try
odjeljku, a ako se pojavi pogreška u ovom bloku, program će se premjestiti na except
odjeljak za obradu te pogreške.
Primjer:
try:
# Attempt to perform an invalid division
result = 10 / 0
except ZeroDivisionError:
print("Error: Cannot divide by zero.")
Rukovanje općim iznimkama
Osim rukovanja određenim vrstama pogrešaka, možemo koristiti i except
bez navođenja određene vrste pogreške. To pomaže u rješavanju općih iznimaka koje ne znamo unaprijed.
Primjer:
try:
# Attempt to perform an invalid division
result = 10 / 0
except:
print("An error occurred.")
Rukovanje više vrsta iznimaka
Također možemo obraditi više različitih vrsta pogrešaka u istom try-except
bloku korištenjem više except
klauzula.
Primjer:
try:
# Attempt to open a non-existent file
file = open("myfile.txt", "r")
content = file.read()
except FileNotFoundError:
print("Error: File not found.")
except PermissionError:
print("Error: No permission to access the file.")
Klauzule else
i finally
_
- Klauzula
else
dopušta izvršavanje bloka koda kada u odjeljku nema pogrešketry
. - Klauzula
finally
dopušta izvršavanje bloka koda nakon što sutry
i odjeljci iexcept
dovršeni.
Primjer:
try:
num = int(input("Enter an integer: "))
except ValueError:
print("Error: Not an integer.")
else:
print("The number you entered is:", num)
finally:
print("Program ends.")
Rukovanje pogreškama i iznimkama Python čini program robusnijim i povećava njegovu stabilnost. Kada ispravno postupamo s pogreškama, možemo pružiti odgovarajuće poruke ili izvršiti odgovarajuće radnje kada se pojave neočekivane situacije.