Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Duvida except ValueError

No capítulo sobre Raiserror, o professor em algum momento coloca o erro: except ValueError , com a mensagem "A lista não pode possuir mais de 4 notas. A consulta foi encerrada!" como sendo "e". Em algum momento o professor criou uma variável e para guardar essa mensagem? Não ficou muito claro para mim

2 respostas
solução!

Ei, Mario! Tudo bem?

Esse tema foi abordado na aula Tratando exceções. Não foi criada como uma variável, mas em forma de capturar a exceção que foi levanta, permitindo que você acesse a mensagem de erro associada a essa exceção.

Ela foi declarada da seguinte forma:

except <nome_da_excecao as e>:

No código acima, declara o nome da exceção seguido do apelido e.

Neste contexto da aula, quando você faz except ValueError as e, a variável e armazena a mensagem "A lista não pode possuir mais de 4 notas." que foi definida no raise ValueError. Assim, quando você usa print(e), a mensagem de erro é exibida:

def media(lista: list=[0]) -> float:
  ''' Função para calcular a média de notas passadas por uma lista

  lista: list, default [0]
    Lista com as notas para calcular a média
  return = calculo: float
    Média calculada
  
  calculo = sum(lista) / len(lista)

  if len(lista) > 4:
    raise ValueError("A lista não pode possuir mais de 4 notas.")

  return calculo

try:
  notas = [6, 7 , 8, 9]
  resultado = media(notas)
except TypeError:
  print("Não foi possível calcular a média do(a) estudante. Só são aceitos valores numéricos!")
except ValueError as e:
  print(e)
else:
  print(resultado)
finally:
  print("A consulta foi encerrada!")

Neste exemplo, a exceção é capturada e a mensagem de erro é impressa através da variável e.

Espero ter ajudado. Qualquer dúvida, conte conosco.

Até mais, Mario!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado!

Obrigado!