Tratamento de Exceções em Python
Em Python, comparado a outras linguagens de programação, há muitas situações que geram exceções.
Vamos examiná-las mais detalhadamente. Suponha que tenhamos uma lista:
lst = [1, 2, 3]
Vamos acessar um elemento da lista que não existe:
print(lts[4])
Após a execução do código, um erro (exceção) será exibido:
IndexError: list index out of range
Se, no entanto, precisarmos continuar a execução sem
exibir a exceção, devemos capturá-la com
a estrutura try-except. Ela
tem a seguinte sintaxe:
try:
# código que pode gerar uma exceção
except:
# tratamento do erro
No bloco try deve-se colocar o código
que pode conter uma exceção. Se
durante a execução desse código ocorrer
uma situação excepcional, a execução
do código não será interrompida, mas passará para o código do bloco
except. Neste bloco, deve-se
escrever a exibição de uma mensagem que descreva
da forma mais precisa possível a essência do erro ocorrido.
Se, durante a execução do bloco try,
nenhuma situação excepcional ocorrer,
então o código útil simplesmente será executado, e o código
do bloco except - não.
Vamos capturar nossa exceção ao acessar
um elemento da lista que não existe. Para
isso, colocaremos no bloco try o código com
o potencial erro. E no bloco except
indicaremos a exibição no console da mensagem 'error:
elem is not exist':
lst = [1, 2, 3]
try:
print(lst[4])
except:
print('error: elem is not exist')
Após a execução do código, será exibido:
'error: elem is not exist'
Após estudar a estrutura try-except,
o estilo do código que você escreve deve mudar.
Agora, todos os locais onde pode ocorrer
uma situação excepcional precisam ser envolvidos
em try, e no bloco except
especificar a reação a essa exceção.
Pergunte ao usuário dois números. Divida um pelo outro. Capture a situação excepcional de divisão por zero.
Pergunte ao usuário um número. Encontre a raiz quadrada desse número. Capture a situação excepcional de extrair a raiz de um número negativo.
Dada uma lista. Pergunte ao usuário um número inteiro. Obtenha o elemento da lista cujo índice foi inserido pelo usuário. Capture a situação excepcional que ocorrerá se o usuário inserir um número fora do intervalo da lista.
Dado o seguinte código:
num = '5'
res = num + 2
print(res)
O que há de errado com este código? Corrija seus defeitos.
Dado o seguinte código:
lst = [1, 2, 3, 4]
def getElem(iter):
print(iter[4])
getElem(lst)
O que há de errado com este código? Corrija seus defeitos.