Pular para o conteúdo

Como resolver exercícios de tratamento de exceção em Python?

[

Tratamento de Exceção em Python: Exercícios

Trabalhar com exceções em Python é uma habilidade importante que todo programador deve dominar. Saber como lidar com erros e exceções de forma adequada pode melhorar a robustez e a confiabilidade de nossos programas. Neste tutorial, vamos explorar alguns exercícios para praticar o tratamento de exceções em Python.

Para executar os exercícios, você precisará de um ambiente Python instalado em sua máquina. Se você ainda não tem o Python instalado, você pode baixá-lo e instalá-lo a partir do site oficial em python.org.

Antes de começarmos, vamos criar uma função simples que simula a leitura de um arquivo. Essa função receberá o nome de um arquivo como parâmetro e tentará ler o conteúdo desse arquivo. Caso ocorra algum erro durante a leitura, a função lançará uma exceção FileNotFoundError.

def ler_arquivo(nome_arquivo):
try:
with open(nome_arquivo, 'r') as arquivo:
conteudo = arquivo.read()
return conteudo
except FileNotFoundError:
raise FileNotFoundError('O arquivo {} não foi encontrado.'.format(nome_arquivo))

Agora, vamos para os exercícios!

Exercício 1: Tratando a exceção

Crie um programa que solicite ao usuário o nome de um arquivo a ser lido e utilize a função ler_arquivo para tentar ler o conteúdo desse arquivo. Se ocorrer algum erro durante a leitura, o programa deve exibir uma mensagem de erro amigável ao usuário. Caso contrário, o programa deve exibir o conteúdo do arquivo na tela.

nome_arquivo = input('Digite o nome do arquivo: ')
try:
conteudo = ler_arquivo(nome_arquivo)
print('Conteúdo do arquivo:')
print(conteudo)
except FileNotFoundError as e:
print('Erro:', str(e))

Exercício 2: Tratando múltiplas exceções

Modifique o programa do exercício 1 para tratar também a exceção PermissionError. Caso ocorra essa exceção, o programa deve exibir uma mensagem informando que não tem permissão para acessar o arquivo.

nome_arquivo = input('Digite o nome do arquivo: ')
try:
conteudo = ler_arquivo(nome_arquivo)
print('Conteúdo do arquivo:')
print(conteudo)
except FileNotFoundError as e:
print('Erro:', str(e))
except PermissionError as e:
print('Não foi possível acessar o arquivo:', str(e))

Exercício 3: Tratando exceções genéricas

Modifique o programa do exercício 1 para tratar de forma genérica qualquer exceção que possa ocorrer durante a leitura do arquivo. O programa deve exibir uma mensagem amigável ao usuário informando que ocorreu um erro.

nome_arquivo = input('Digite o nome do arquivo: ')
try:
conteudo = ler_arquivo(nome_arquivo)
print('Conteúdo do arquivo:')
print(conteudo)
except Exception as e:
print('Ocorreu um erro:', str(e))

Exercício 4: Tratamento de exceções aninhadas

Crie uma função chamada dividir que recebe dois números como parâmetros e retorna o resultado da divisão do primeiro pelo segundo. A função deve tratar a exceção ZeroDivisionError caso o segundo número seja zero. Em seguida, crie um programa que solicite ao usuário dois números e utilize a função dividir para realizar a divisão. O programa deve exibir o resultado da divisão na tela.

def dividir(a, b):
try:
resultado = a / b
return resultado
except ZeroDivisionError:
raise ZeroDivisionError('Não é possível dividir por zero.')
try:
a = float(input('Digite o primeiro número: '))
b = float(input('Digite o segundo número: '))
resultado = dividir(a, b)
print('Resultado:', resultado)
except ZeroDivisionError as e:
print('Erro:', str(e))
except ValueError:
print('Erro: Digite apenas números válidos.')

Conclusão

Neste tutorial, vimos alguns exemplos de como tratar exceções em Python. Desde lidar com erros específicos, como FileNotFoundError e PermissionError, até lidar com exceções genéricas usando Exception. Também aprendemos como tratar exceções aninhadas, como ZeroDivisionError. Praticar esses exercícios pode ajudar a reforçar seus conhecimentos e aprimorar suas habilidades em tratamento de exceções em Python.

Lembre-se sempre de documentar seu código e escrever mensagens de erro claras para facilitar o entendimento e a manutenção futura de seus programas. Boa prática!