Tratamento de Exceção
Atividade 1: Calculadora Segura
Objetivo: Criar uma calculadora de linha de comando que lida com entradas inválidas do usuário e operações matemáticas impossíveis.
Conceitos a serem aplicados:
try-catch
InputMismatchException
ArithmeticException
finally
Descrição:
Desenvolva um programa que solicita ao usuário dois números (pode ser int ou double) e a operação a ser realizada (+, -, *, /). O programa deve exibir o resultado da operação. No entanto, ele precisa ser robusto o suficiente para lidar com os seguintes cenários:
Entrada não numérica: Se o usuário digitar um texto em vez de um número, o programa não deve quebrar. Em vez disso, deve capturar a exceção
InputMismatchException
e exibir uma mensagem amigável, como: "Entrada inválida. Por favor, insira apenas números."Divisão por zero: Se o usuário tentar dividir um número por zero, o programa deve capturar a exceção
ArithmeticException
e informar: "Erro: Divisão por zero não é permitida."Limpeza de recursos: Utilize um bloco
finally
para exibir uma mensagem ao final de cada tentativa de cálculo, como "Fim da operação de cálculo.", garantindo que ela apareça independentemente de uma exceção ter ocorrido ou não.
Exemplo de fluxo:
Atividade 2: Validador de Senha Forte
Objetivo: Desenvolver uma função que verifica se uma senha atende a determinados critérios de segurança e lança exceções personalizadas para cada regra não cumprida.
Conceitos a serem aplicados:
Criação de exceções personalizadas (Custom Exceptions)
throw
try-catch
múltiplo
Descrição:
Crie uma classe de exceção personalizada chamada SenhaInvalidaException, que herda de Exception. Em seguida, crie um método validarSenha(String senha) que verifica as seguintes regras:
A senha deve ter pelo menos 8 caracteres.
A senha deve conter pelo menos um número.
A senha deve conter pelo menos uma letra maiúscula.
Se uma senha não atender a algum desses critérios, o método deve lançar uma SenhaInvalidaException
com uma mensagem específica sobre a regra que foi violada.
No método main
, peça ao usuário para digitar uma senha, chame o método validarSenha
dentro de um bloco try
e capture a SenhaInvalidaException
para informar ao usuário exatamente o que está errado com sua senha.
Exemplo de exceção personalizada:
Java
Exemplo de fluxo:
Atualizado