Prévia do material em texto
RESPOSTA- (44) 99162-8928
MAPA - PROGRAMAÇÃO AVANÇADA - 54_2025
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.
RESPOSTA- (44) 99162-8928
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 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
RESPOSTA- (44) 99162-8928
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.
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;
RESPOSTA- (44) 99162-8928
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."
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:
RESPOSTA- (44) 99162-8928
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.
Assista às aulas conceituaisda disciplina.
Orientações importantes:
- 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.
não será possível reenviar a atividade ou realizar qualquer modificação no arquivo enviado).
RESPOSTA- (44) 99162-8928
Boa atividade!