Exercícios Resolvidos de Tratando exceções

Ver Teoria

Enunciado

Observe o seguinte programa:

Um dos problemas do código acima é que o mesmo além de possuir um erro lógico (execução de um comando de escrita em um arquivo em modo de leitura), abre um arquivo e tem a sua execução encerrada.

Incremente o código apresentado liberando da memória a referência do arquivo tanto nos casos de erro, quanto em execuções bem-sucedidas (caso o mesmo fosse aberto em modo de escrita).

Passo 1

Bom, a primeira coisa que devemos fazer é analisar o que o enunciado quer que nós façamos.

Quando o mesmo diz que devemos liberar da memória a referência do arquivo aberto, ele está nos dizendo que devemos utilizar a função close. Porém, isso deve ser feito “tanto nos casos de erro, quanto em execuções bem-sucedidas (caso o mesmo fosse aberto em modo de escrita).”

Passo 2

Sendo assim, podemos utilizar o comando finally, uma vez que ele será sempre executado, ou seja, tanto quando o bloco try não gerar exceções, quanto após a execução de algum bloco except.

Resposta

Portanto, após o incremento do bloco finally o programa ficará da seguinte forma: