Prévia do material em texto
(44) 99162-8928
Está SEM TEMPO ou com DIFICULDADE de realizar o seu trabalho
acadêmico?
Entre em contato conosco agora mesmo! Iremos te ajudar nessa jornada
acadêmica
(44) 99162-8928
MAPA - PROGRAMAÇÃO AVANÇADA - 54_2025
22
O desenvolvimento de sistemas envolve lidar com uma série de situações inesperadas que podem
comprometer a execução normal de uma aplicação. Em um cenário simples, como um programa de
cadastro de produtos, o usuário pode fornecer uma entrada incorreta ao digitar letras em vez de
números no campo destinado ao preço. Esse tipo de falha, aparentemente trivial, pode causar a
interrupção imediata do programa e afetar toda a experiência do usuário. Quando ampliamos essa
análise para ambientes corporativos mais complexos, como sistemas bancários, hospitalares ou de
gestão empresarial, a gravidade de erros não tratados se torna ainda mais evidente, podendo
resultar em perdas financeiras, falhas de segurança ou até impactos na vida de pessoas.
A linguagem Java, ao longo de sua evolução, incorporou um modelo robusto para o tratamento de
exceções, possibilitando que erros sejam capturados e tratados de maneira controlada. Esse
mecanismo é baseado em blocos como try, catch e finally , que permitem definir pontos de
verificação e de recuperação dentro do código. Dessa forma, em vez de o programa encerrar
abruptamente diante de uma falha, ele consegue executar rotinas de tratamento, emitir mensagens
claras ao usuário e até corrigir o problema quando possível. Essa abordagem não apenas melhora
a confiabilidade do sistema, mas também reforça a percepção de qualidade por parte do cliente.
Em sistemas distribuídos e aplicações que dependem de integrações externas, como conexões
com bancos de dados ou serviços via rede, a ocorrência de erros é praticamente inevitável. Uma
conexão pode ser interrompida por instabilidade na internet, um arquivo pode estar ausente no
momento da leitura ou um valor numérico pode ultrapassar os limites esperados. Nesses casos, a
simples ausência de tratamento adequado pode levar a falhas em cascata, comprometendo
módulos inteiros da aplicação. Por isso, entender e aplicar corretamente os recursos de tratamento
de exceções é um diferencial essencial para desenvolvedores que buscam qualidade e resiliência
em seus projetos.
Outro ponto importante está na separação entre o fluxo normal do programa e o fluxo de tratamento
de erros. Sem um mecanismo estruturado, o desenvolvedor precisaria inserir múltiplas verificações
condicionais em diversas partes do código, tornando-o confuso e de difícil manutenção. O modelo
de exceções de Java, ao contrário, centraliza e organiza o tratamento, permitindo que o código
principal se mantenha mais limpo e legível. Essa característica está diretamente associada a boas
práticas de engenharia de software, uma vez que facilita a manutenção e a evolução dos sistemas
ao longo do tempo.
Além da captura e tratamento direto, a linguagem também oferece o mecanismo de propagação de
exceções, utilizando a palavra-chave throws . Isso significa que, em determinadas situações, o
método que detecta o erro pode não ser o mais apropriado para resolvê-lo, delegando essa
22
responsabilidade para métodos de níveis superiores. Essa propagação é útil, por exemplo, em
sistemas em camadas, onde a lógica de interface com o usuário, a lógica de negócio e a
persistência de dados estão separadas. Cada camada pode decidir se trata o erro ou se o repassa
adiante, até que seja devidamente resolvido em um ponto mais estratégico.
Um exemplo prático está na leitura de arquivos. Um método que tenta abrir um arquivo inexistente
pode lançar uma exceção FileNotFoundException . Caso esse método esteja em um módulo de
acesso a dados, talvez ele não deva decidir o que fazer diante dessa falha, mas apenas notificar a
camada superior por meio da propagação. Assim, o módulo de interface com o usuário pode ser o
responsável por exibir uma mensagem clara, sugerindo ao usuário verificar se o arquivo realmente
existe ou se o caminho foi digitado corretamente. Esse tipo de organização mostra a força do
modelo de exceções como ferramenta para manter a separação de responsabilidades dentro de um
sistema.
Outro aspecto essencial é a possibilidade de criação de exceções personalizadas. Muitas vezes, as
exceções oferecidas pela biblioteca padrão de Java não são suficientes para expressar problemas
específicos de um domínio de negócio. Imagine, por exemplo, um sistema bancário em que uma
tentativa de saque ultrapassa o saldo disponível. Embora fosse possível lançar uma exceção
genérica, como IllegalArgumentException , criar uma exceção própria, como
SaldoInsuficienteException , torna o código mais expressivo e facilita a manutenção. Ao lançar uma
exceção personalizada, o desenvolvedor consegue comunicar de forma clara o tipo exato de
problema ocorrido, permitindo que ele seja tratado de maneira diferenciada.
Esse uso de exceções personalizadas também facilita a vida de equipes de manutenção. Ao se
depararem com logs ou mensagens de erro, os desenvolvedores conseguem identificar
rapidamente a causa do problema, sem a necessidade de análises longas ou confusas. Em
grandes projetos, onde diferentes equipes trabalham em conjunto, essa clareza se torna ainda mais
valiosa, reduzindo custos de suporte e acelerando o processo de correção de falhas.
Portanto, o tratamento de exceções não deve ser visto como um recurso opcional ou secundário
dentro do desenvolvimento em Java, mas como uma prática essencial para garantir a robustez, a
clareza e a confiabilidade dos sistemas. Ele está diretamente relacionado às boas práticas de
engenharia de software e deve ser incorporado desde as primeiras fases de desenvolvimento, não
apenas em momentos de correção de falhas. Assim, os sistemas produzidos tornam-se mais
resilientes, preparados para lidar com imprevistos e capazes de oferecer uma experiência
consistente ao usuário, independentemente dos erros que possam surgir.
22
JUNIOR, E. A. O.; PEREIRA, R. de L. Programação Avançada . Maringá: Unicesumar, 2016.
Reimpresso em 2023.
Assim, é necessário para esta atividade MAPA que você:
Questão 1. Explique, com suas próprias palavras, a importância do tratamento de exceções em
Java e como ele contribui para a confiabilidade dos sistemas.
Questão 2. Desenvolva um exemplo de código em Java que utilize try-catch-finally para capturar
uma exceção de entrada inválida ao tentar converter uma String em número decimal.
import java.util.Scanner;
public class CadastroProduto {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Digite o preço do produto: ");
double preco = Double.parseDouble(sc.nextLine());
System.out.println("Preço com desconto: " + (preco * 0.9));
/* incluir: "Erro: valor inválido! Digite um número válido."
22
sc.close();
System.out.println("Execução finalizada.");
*/
}
}
Questão 3. Descreva como a propagação de exceções (uso de throws) pode ser aplicada em
cenários mais complexos de sistemas.
Questão 4. Analise criticamente a possibilidade de criação de exceções personalizadas (extends
Exception) e explique em que situações isso se torna vantajoso.
Como entregar a atividade:
A atividade deve ser elaborada em um arquivo de TEXTO, seguindo o TEMPLATE disponível no
MATERIAL DA DISCIPLINA no Studeo. O arquivo final deve ser salvo com a extensão .PDF ou
.DOC. Após finalizar, você deve anexar o arquivo no ambiente da atividade dentro do Studeo.
Dicas para realizar a atividade:
Durante as aulas, o professor fornecerá dicas que podem ser utilizadas para a confecção das suas
atividades. Assim, é de suma importância participar das aulas ao vivo ou assisti-las
posteriormente.
22
Assista às aulas conceituais da disciplina.
Orientaçõesimportantes:
- Acesse o link com um vídeo tutorial para ajudá-lo nesse processo de criação e desenvolvimento.
O acesso deverá ser realizado em: Arquivos > Material da Disciplina.
- Lembre-se de que evidências de cópias de materiais, incluindo de outros estudantes, sem devidas
referências, serão inquestionavelmente zeradas. As citações e referências, mesmo que do livro da
disciplina, devem ser realizadas conforme as normas da Instituição de Ensino.
- Não são permitidas correções parciais no decorrer do módulo, ou seja, o famoso: “professor, veja
se minha atividade está certa?”. Isso invalida seu processo avaliativo. Lembre-se que a
interpretação da atividade também faz parte da avaliação.
- Procure sanar suas dúvidas junto à mediação em tempo hábil sobre o conteúdo exigido na
atividade, de modo que consiga realizar sua participação.
- Atenção ao prazo de entrega, evite envio de atividade em cima do prazo. Você pode ter algum
problema com internet, computador, software etc., e os prazos não serão flexibilizados, mesmo em
caso de comprovação.
- Anexe o arquivo na atividade, clicando sobre o botão Selecionar arquivo.
- Após anexar o trabalho, certificar-se que se trata do arquivo correto, clique no botão Responder e,
posteriormente, em Finalizar Questionário (após "Finalizar o Questionário", não será possível
reenviar a atividade ou realizar qualquer modificação no arquivo enviado).
Boa
22