Objetivos
(10 - 15 minutos)
Objetivo Principal:
- Introduzir o conceito de Exceções em Python e destacar sua importância na programação eficiente e na gestão de erros.
Objetivos Secundários:
- Explicar a hierarquia das exceções em Python, e como diferentes tipos de erros resultam em diferentes tipos de exceções.
- Demonstrar como lançar, gerenciar e capturar exceções em Python usando
try/except
,finally
,else
eraise
. - Realizar exercícios práticos para fortalecer o entendimento dos alunos sobre o manejo de exceções e incentivar a criação de suas próprias exceções personalizadas.
- Discutir o uso do statement
assert
e como ele pode ser usado para realizar verificações de sanidade e evitar erros.
Introdução
(15 - 20 minutos)
Para iniciar a aula, será importante relembrar os alunos sobre o tópico da última aula, "Manipulação de Arquivos em Python", e como as operações de leitura e escrita podem ter erros em potencial. Isso servirá como base para a introdução das exceções, que são uma maneira de lidar com esses erros de maneira controlada.
Em seguida, o professor apresentará duas situações-problema para instigar o pensamento crítico dos alunos:
-
O que acontece se tentarmos abrir um arquivo que não existe para leitura? Como podemos tratar essa situação sem interromper a execução do programa?
-
Como podemos verificar se um valor inserido pelo usuário é realmente um número antes de tentar usá-lo em um cálculo, e o que podemos fazer se não for?
Ambas as situações têm em comum o potencial para a ocorrência de erros durante a execução do programa, e servirão como uma excelente introdução ao tópico de Exceções em Python.
Depois, será enfatizada a importância do manejo de exceções na programação real. O professor pode trazer exemplos de situações onde um erro não tratado poderia levar a resultados desastrosos, como um site de comércio eletrônico que falha ao processar um pagamento ou um sistema de controle de voo que falha durante uma decolagem.
Para captar o interesse dos alunos, duas curiosidades podem ser compartilhadas:
-
Python, diferentemente de outras linguagens de programação, tem uma filosofia conhecida como "EAFP" (Easier to Ask for Forgiveness than Permission), que incentiva o uso de exceções para lidar com erros.
-
A palavra "Python" em "Exceções Python" não tem nada a ver com a serpente, mas é uma homenagem ao grupo de comédia britânico Monty Python. Então, quando pensarmos em exceções, pensemos neles como uma maneira de evitar "piadas" inesperadas em nosso código!
Com isso, os alunos estarão prontos para mergulhar na teoria e na prática do manejo de exceções em Python.
Desenvolvimento
(50 - 60 minutos)
Para iniciar a fase de desenvolvimento, é crucial revisar alguns conceitos que já foram tratados em aulas anteriores. Esses conceitos incluem a sintaxe básica de Python, controle de fluxo (como if-else, loops), e conceitos básicos de funções e classes. Todos esses conceitos são fundamentais para entender como as exceções funcionam em Python.
Apresentação da Teoria:
-
Hierarquia de Exceções em Python: O professor deve começar explicando que todas as exceções em Python derivam da classe base
BaseException
. No entanto, para a maioria das necessidades de manejo de exceções, os alunos estarão trabalhando com exceções que herdam da classeException
. O professor pode mostrar um diagrama da hierarquia de exceções em Python e discutir algumas das exceções comuns comoTypeError
,ValueError
,IOError
, etc. -
Lançamento de Exceções: Em seguida, o professor deve demonstrar como lançar uma exceção usando a palavra-chave
raise
. Ele pode mostrar um exemplo simples de uma função que lança uma exceção se um argumento inválido for passado. -
Gestão e Captura de Exceções: O professor deve então introduzir os blocos
try/except
, demonstrando como eles podem ser usados para tentar um bloco de código e capturar qualquer exceção que possa ser lançada. Ele deve destacar que diferentes exceções podem ser capturadas e tratadas de maneiras diferentes. -
Blocos
finally
eelse
: O professor deve explicar como o blocofinally
pode ser usado para garantir que certas ações sejam sempre executadas, quer uma exceção seja lançada ou não. Em seguida, ele pode apresentar o blocoelse
, que é executado se nenhuma exceção for lançada no blocotry
. -
Criação de Exceções Personalizadas: O professor deve explicar que os alunos podem criar suas próprias exceções personalizadas para representar erros específicos em seus programas. Ele pode mostrar um exemplo de uma exceção personalizada sendo definida e lançada.
-
Uso do statement
assert
: Finalmente, o professor deve apresentar o statementassert
, e como ele pode ser usado para verificar se uma condição é verdadeira, lançando uma exceção se não for.
Atividades Práticas:
-
Exercício de Lançamento de Exceções: Peça aos alunos para escrever uma função que aceita um número como argumento e lança uma exceção se o número for negativo. Os alunos devem testar sua função com vários argumentos para ter certeza de que ela está funcionando corretamente.
-
Exercício de Gestão de Exceções: Peça aos alunos para escrever um programa que pede ao usuário para inserir um número, e então tenta converter a entrada do usuário em um número usando a função
int()
. Eles devem usar um blocotry/except
para capturar a exceçãoValueError
se o usuário inserir algo que não seja um número.
Materiais Necessários:
Para esta aula, os alunos precisarão de um computador com Python instalado e um editor de texto para escrever e executar seu código. Além disso, é recomendável que cada aluno tenha acesso à documentação oficial da Python para que eles possam consultar a lista completa de exceções incorporadas e aprender mais sobre cada uma delas.
Retorno
(15 - 20 minutos)
Após a fase de desenvolvimento e prática, é importante consolidar o aprendizado e refletir sobre o que foi aprendido. Esta sessão de retorno permitirá aos alunos terem tempo para revisar o material e fazer perguntas sobre quaisquer pontos que ainda não estão claros.
Reflexão em Grupo:
O professor deve iniciar esta sessão pedindo aos alunos para compartilharem suas experiências com os exercícios práticos. Eles podem discutir as dificuldades que encontraram, como superaram essas dificuldades e quais estratégias encontraram para serem mais eficazes. Isso permitirá que os alunos aprendam uns com os outros e reforcem seu próprio entendimento.
O professor pode então conectar essas experiências de volta à teoria, destacando como as habilidades que os alunos praticaram são aplicadas em situações de programação do mundo real.
Atividade de Reflexão Individual:
Para a atividade individual, o professor deve pedir aos alunos para escreverem respostas para as seguintes perguntas em um papel:
- Qual foi o conceito mais importante que você aprendeu hoje?
- Quais questões ainda não foram respondidas para você?
Isso permitirá aos alunos refletirem sobre seu próprio aprendizado e identificarem quaisquer áreas que precisem de mais estudo ou esclarecimento.
Exercícios para Casa:
Finalmente, o professor deve fornecer uma lista de exercícios para os alunos resolverem em casa. Esses exercícios devem ser projetados para permitir que os alunos apliquem e pratiquem o que aprenderam sobre Exceções em Python. Eles podem incluir tarefas como criar e lançar suas próprias exceções personalizadas, usar o statement assert
para verificar as condições, e escrever blocos try/except/else/finally
para gerenciar exceções.
Esses exercícios darão aos alunos a oportunidade de solidificar seu entendimento do tema e prepará-los para os tópicos avançados de Python que serão cobertos nas próximas aulas.
Conclusão
(10 - 15 minutos)
Para finalizar a aula, o professor deve resumir e recapitular os principais pontos discutidos durante a aula.
Ele deve reiterar a importância das exceções na programação Python, destacando como elas permitem que os programadores lidem com erros de maneira controlada, evitando que o programa termine abruptamente.
A conexão entre a teoria e a prática deve ser enfatizada, lembrando aos alunos de como eles aplicaram a teoria do manejo de exceções na prática durante os exercícios de sala de aula e como essas habilidades são úteis na programação do mundo real.
O professor pode então sugerir materiais de leitura adicionais para os alunos que desejam se aprofundar mais no tema. Isso pode incluir a documentação oficial do Python sobre exceções, tutoriais online e livros de referência sobre Python.
Para enfatizar a aplicabilidade do que foi aprendido, o professor pode fornecer exemplos de como o manejo de exceções pode ser útil no dia a dia dos alunos, seja escrevendo seu próprio código para resolver problemas, depurando o código existente ou até mesmo lendo e entendendo o código escrito por outros.
Por fim, o professor deve encorajar os alunos a continuarem praticando o que aprenderam, ressaltando que a habilidade de lidar com exceções é uma ferramenta valiosa em sua caixa de ferramentas de programação. Isso não apenas tornará seu código mais robusto e seguro, mas também os ajudará a se tornarem melhores programadores.
Lembrando que, na programação, assim como em muitas outras coisas na vida, é mais fácil pedir perdão do que permissão!