Dažādu izņēmumu tipu pārtveršana Python
Vienā un tajā pašā kodā var būt nepieciešams pārtvert dažādus izņēmumu tipus.
Pieņemsim, ka mums ir jānoķer izņēmums, dalot ar nulli. Šāda veida kļūdas gadījumā tiek izmests izņēmums:
ZeroDivisionError: division by zero
Lai to noķertu, izņēmuma nosaukums jāieraksta
blokā except:
try:
print(1 / 0)
except ZeroDivisionError:
print('error: do not divide by zero')
Pieņemsim arī, ka mums ir saraksts:
lst = [1, 2, 3]
Ja blokā try ierakstīsiet kodu ar citu
potenciālu kļūdu, piemēram, ar neesoša
elementa izvadi, tad izņēmums, kas netika
noķerts blokā except, izies tālāk
un tiks izvadīts konsolē. Kā dēļ
apstāsies koda darbība:
lst = [1, 2, 3]
try:
print(lst[4]) # izvadīs IndexError: list index out of range
except ZeroDivisionError:
print('error: do not divide by zero')
Lai atrisinātu šādu situāciju, katrā blokā jānorāda atbilstošais izņēmumu tipa nosaukums. Pievienosim mūsu kodam izņēmumu par neesošu elementu:
try:
print(lst[4])
except ZeroDivisionError:
print('error: do not divide by zero')
except IndexError:
print('error: elem is not exist')
Dots šāds kods:
txt = '2'
res1 = txt + 3
res2 = txt1
Uzrakstiet kodu, lai pārtvertu parādītos
izņēmumus mainīgajos res1 un res2.