Tratamento de Erros e Exceções em Python 3
Erros e exceções em Python 3
Em todo software existem partes do código onde há a necessidade de aplicar o tratamento de erros e
exceções, onde o desenvolvedor não está esperando que o usuário final possa causá-los. Até mesmo um simples script de divisão está sujeito a erros, quando por exemplo, você tenta dividir um número por zero. O que acaba gerando um problema, pois, sempre há a necessidade de se preparar para todos os erros conhecidos. Aqui, eu estarei deixando um exemplo de um script simples de divisão, para você que é iniciante em programação entenda um pouco sobre tratamento de erros e exceções em Python 3.
A princípio, o código não tem nenhum tipo de tratamento como podem ver abaixo:
n1 = float(input("Digite o primeiro número: "))
n2 = float(input("Digite o segundo número: "))
print(n1 / n2)
Note que o código acima é bem simples e está correto, porém ele não tem nenhum tipo de tratamento. Então se o usuário tentar digitar uma letra em vez de um número, apareceria um erro como mostrado na imagem a baixo:
Para tratar o erro acima, precisamos utilizar o comando try - que é o comando especializado para tratamentos de erros try (significa tentar). Em seguida, adicionamos a linha do código onde pode ocorrer um erro, e abaixo adicionamos o comando except seguido do tipo de erro. Abaixo, o código da divisão já com o tratamento realizado dentro de um loop:
def input_float(msg):
while True:
try:
return float(input(msg))
except ValueError:
print('Valor invalido')
n1 = input_float('Primeiro número: ')
n2 = input_float('Segundo número: ')
print(n1 / n2)
Desta forma, o erro ValueError será tratado. E como o tratamento foi realizado dentro de uma função, poderemos chamá-la sempre que precisarmos, tornando o código mais limpo. No entanto, existe ainda outro possível erro, onde o usuário pode tentar dividir um número por zero, finalizando assim a aplicação. E para que o código consiga funcionar corretamente e livre de problemas conhecidos, teríamos que aplicar outro tratamento, como mostrado no código a baixo:
def input_float(msg):
while True:
try:
return float(input(msg))
except ValueError:
print('Valor invalido')
n1 = input_float('Primeiro número: ')
n2 = input_float('Segundo número: ')
while n2 == 0:
try:
(n1 / n2)
except ZeroDivisionError:
print('Não é possivel dividir por 0')
n2 = input_float('Segundo número: ')
print(n1 / n2)
Nós criamos uma solução simples para 2 erros que podem ocorrer durante a execução da aplicação, e claro, essa não é a melhor forma de tratar um erro. Mas, é a mais simples que eu conheço. E fiquem livres para testar e tentar aplicar outros tipos de correções.Você pode estudar mais os tratamentos aqui ou aqui. Obrigado pela atenção e estudem muito, até a próxima!
0 comments:
Obrigado por comentar