Фатиње на исклучоци во Python
Во Python во споредба со другите програмски јазици има многу ситуации кои предизвикуваат исклучоци.
Ајде да ги разгледаме подетално. Да речеме дека имаме список:
lst = [1, 2, 3]
Да се обидеме да пристапиме до непостоечки елемент од списокот:
print(lts[4])
По извршувањето на кодот ќе се појави грешка (исклучок):
IndexError: list index out of range
Доколку ние сакаме да продолжиме со работата без
да се прикаже исклучокот, треба да го фатиме со
користење на конструкцијата try-except. Таа
ја има следната синтакса:
try:
# код кој може да предизвика исклучок
except:
# обработка на грешката
Во блокот try треба да се стави кодот
кој може да содржи исклучок. Доколку
при извршувањето на овој код се појави
исклучителна ситуација, тогаш извршувањето
на кодот нема да застане, туку ќе продолжи во кодот на блокот
except. Во овој блок треба
да се напише порака, која што што е можно
попрецизно ја опишува суштината на грешката.
Доколку пак при извршувањето на блокот try
не се појави никаква исклучителна ситуација,
тогаш корисниот код едноставно ќе се изврши, а кодот
од блокот except - нема.
Ајде да го фатиме нашиот исклучок при обид за пристап
до непостоечки елемент на списокот. За
тоа во блокот try ќе го ставиме кодот со
потенцијална грешка. А во блокот except
ќе поставиме печатење на пораката 'error:
elem is not exist' во конзола:
lst = [1, 2, 3]
try:
print(lst[4])
except:
print('error: elem is not exist')
По извршувањето на кодот ќе се испечати:
'error: elem is not exist'
По изучувањето на конструкцијата try-except
стилот на вашиот код треба да се смени.
Сега сите места, каде што може да се појави
исклучителна ситуација, треба да се завиткаат
во try, а во блокот except
да се опише реакцијата на овој исклучок.
Побарајте од корисникот два броја. Поделете едниот со другиот. Фатете ја исклучителната ситуација на делење со нула.
Побарајте од корисникот број. Најдете го квадратниот корен на тој број. Фатете ја исклучителната ситуација на вадење корен од негативен број.
Даден е список. Побарајте од корисникот цел број. Добијте го елементот на списокот, чиј што индекс го внел корисникот. Фатете ја исклучителната ситуација, која што ќе се случи, доколку корисникот внел број надвор од опсегот на списокот.
Даден е следниот код:
num = '5'
res = num + 2
print(res)
Што не е во ред со овој код? Поправете ги неговите недостатоци.
Даден е следниот код:
lst = [1, 2, 3, 4]
def getElem(iter):
print(iter[4])
getElem(lst)
Што не е во ред со овој код? Поправете ги неговите недостатоци.