Observe o seguinte programa:
Escreva o que será impresso na tela caso o mesmo seja executado com o seguinte arquivo de entrada:
Passo 1
Bom, vamos lá!
A primeira coisa que nós iremos fazer é analisar o arquivo de entrada desse programa (program.in).
Com isso, sabemos que o programa terá a entrada de dois números, que são: 5 e 3.
Passo 2
Agora que já sabemos quais são as entradas, podemos executarmos o programa em busca de exceções.
Dentro de um bloco try o programa irá requisitar a entrada de dois números do tipo float para as variáveis e , sem problemas até aqui, uma vez que 5 e 3 estão presentes no conjunto dos números reais.
Passo 3
Em seguida, uma variável recebe o resultado da divisão entre e . Mais uma vez, tudo está tranquilo.
Passo 4
Por fim, temos a impressão da variável com precisão de duas casas decimais.
PERA!
Nós não temos uma variável e sim uma variável . Logo, uma exceção será gerada, mais precisamente a exceção NameError.
Passo 5
Agora ficou fácil, só nos resta analisarmos as exceções que foram tratadas.
Nós temos o tratamento de exceções do tipo ValueError, ZeroDivisionError e uma para todas as outras exceções.
Como a nossa exceção não é nem do tipo ValueError quanto do tipo ZeroDivisionError, o que será impresso na tela é aquilo executado no bloco onde temos apenas except.
Resposta
Portanto, o que será impresso na tela é: “Algo deu errado.”