Try/except com arquivos
Ao lidar com arquivos no mundo real, erros como arquivo inexistente ou falta de permissão são comuns. Tratar esses erros de forma específica evita que o programa quebre e permite dar mensagens úteis ao usuário. Um sistema de logs, por exemplo, precisa informar quando não consegue ler um arquivo de configuração.
O PROBLEMA
Trate FileNotFoundError e PermissionError ao abrir arquivos.
EXEMPLO
Erro: Arquivo não encontrado!
SOBRE O CONCEITO
Use try/except para capturar exceções específicas como FileNotFoundError e PermissionError. Isso é melhor que capturar Exception genérica, pois esconde outros erros inesperados. Ao capturar Exception, você pode mascarar bugs como um nome de variável incorreto dentro do try. Por isso, sempre prefira exceções específicas. O bloco finally é opcional, mas útil para fechar recursos, embora não seja obrigatório. Lembre que open() já retorna um objeto arquivo, mas se der erro, você precisa tratar.
RESOLUÇÃO