-
Recapitulare a gestionării excepțiilor
- Introducere în excepții și erori în Python
- blocurile
try,except,elseșifinally
-
Excepții multiple
- Gestionarea mai multor tipuri de excepții
- Exemple și exerciții practice
-
Crearea excepțiilor personalizate
- Cum se creează o excepție personalizată
- Utilizarea excepțiilor personalizate în programe
- Exemple și exerciții practice
-
Lanțul de gestiune a excepțiilor
- Cum funcționează lanțul de gestiune a excepțiilor
- Propagarea excepțiilor în funcții și metode
- Exemple și exerciții practice
-
Folosirea
raisepentru a relansa o excepție- Utilizarea
raisepentru a relansa o excepție prinsă - Exemple și exerciții practice
- Utilizarea
-
Utilizarea
assertpentru a verifica condițiile- Cum se folosește
assertîn Python - Exemple și exerciții practice
- Cum se folosește
Exemple și exerciții pentru fiecare subpunct:
Exemplu: Excepții multiple
try:
numar = int(input("Introduceți un număr: "))
rezultat = 10 / numar
except ZeroDivisionError:
print("Nu se poate împărți la zero.")
except ValueError:
print("Ați introdus un caracter care nu este un număr.")
Exercițiu:
Gestionați excepțiile care pot apărea atunci când deschideți un fișier și încercați să scrieți în el.
Exemplu: Crearea excepțiilor personalizate
class EroareDivizareImpare(Exception):
pass
def divide_pare(numar1, numar2):
if numar1 % 2 != 0 or numar2 % 2 != 0:
raise EroareDivizareImpare("Unul sau ambele numere sunt impare.")
return numar1 / numar2
try:
rezultat = divide_pare(10, 3)
except EroareDivizareImpare as e:
print(e)
Exercițiu:
Creați o excepție personalizată pentru a gestiona cazul în care un utilizator încearcă să acceseze o resursă pentru care nu are permisiuni.
Exemplu: Lanțul de gestiune a excepțiilor
def functie1():
functie2()
def functie2():
try:
x = 1 / 0
except ZeroDivisionError as e:
print("Eroare în funcția 2:", e)
raise
try:
functie1()
except ZeroDivisionError as e:
print("Eroare în funcția 1:", e)
Exercițiu:
Gestionați o excepție care este propagată de-a lungul a trei funcții.
Exemplu: Folosirea raise pentru a relansa o excepție
try:
numar = int(input("Introduceți un număr: "))
if numar < 0:
raise ValueError("Nu se acceptă numere negative.")
except ValueError as e:
print(e)
raise
Exercițiu:
Relansați o excepție prinsă într-un alt bloc de try și except.
Exemplu: Utilizarea assert pentru a verifica condițiile
def calculeaza_rata_dobânzii(principal, rate, perioada):
assert principal > 0, "Principalul trebuie să fie mai mare decât zero."
assert rate > 0, "Rata trebuie să fie mai mare decât zero."
assert perioada > 0, "Perioada trebuie să fie mai mare decât zero."
return principal * rate * perioada
try:
rezultat = calculeaza_rata_dobânzii(-10000, 0.05, 5)
except AssertionError as e:
print(e)
Exercițiu:
Utilizați assert pentru a verifica dacă un șir de caractere introdus de utilizator conține cel puțin 8 caractere și cel puțin o cifră.
Rezumat:
În această lecție, am aprofundat gestionarea excepțiilor în Python, abordând subiecte precum gestionarea mai multor tipuri de excepții, crearea excepțiilor personalizate, lanțul de gestiune a excepțiilor, relansarea excepțiilor cu raise și utilizarea assert pentru a verifica condițiile.
Am realizat exemple și exerciții practice pentru a ne familiariza cu aceste concepte și pentru a înțelege cum să le aplicăm în diferite situații în dezvoltarea de programe. Acest set de cunoștințe ne va ajuta să gestionăm erorile și excepțiile într-un mod mai eficient și să scriem cod mai robust și mai ușor de întreținut.