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:

  1. 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."

  2. 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."

  3. 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:

Digite o primeiro número: 10
Digite o segundo número: 0
Digite a operação (+, -, *, /): /
Erro: Divisão por zero não é permitida.
Fim da operação de cálculo.

Digite o primeiro número: abc
Entrada inválida. Por favor, insira apenas números.
Fim da operação de cálculo.

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:

  1. A senha deve ter pelo menos 8 caracteres.

  2. A senha deve conter pelo menos um número.

  3. 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

public class SenhaInvalidaException extends Exception {
    public SenhaInvalidaException(String mensagem) {
        super(mensagem);
    }
}

Exemplo de fluxo:

Digite uma senha para validação: senha123
SenhaInvalidaException: A senha deve conter pelo menos uma letra maiúscula.

Digite uma senha para validação: SENHA
SenhaInvalidaException: A senha deve ter pelo menos 8 caracteres.

Digite uma senha para validação: SenhaValida123
Senha válida!

Atualizado