Menu
Coddy logo textTech

Lançando Exceções

Parte da seção Lógica e Fluxo do Journey de Java da Coddy — lição 42 de 59.

A palavra-chave throw em Java permite que você lance uma exceção explicitamente. Aqui está a estrutura básica:

throw new ExceptionType("Error message");

Os componentes são:

  • throw: Palavra-chave para lançar uma exceção
  • new ExceptionType: Cria uma nova exceção (como IllegalArgumentException)
  • "Error message": Descreve o que deu errado

Vamos ver em ação:

int age = -5;
if (age < 0) {
    throw new IllegalArgumentException("Age cannot be negative");
}

Após executar o código acima, o programa lança:

IllegalArgumentException: Age cannot be negative

challenge icon

Desafio

Fácil

Crie um método chamado validateAge que recebe dois argumentos:

  1. Um inteiro (age) para validar
  2. Um booleano (strict) que determina as regras de validação

O método deve lançar exceções com base nessas regras:

  • Se age for negativo: lance IllegalArgumentException com a mensagem "Age cannot be negative"
  • Se age for maior que 150: lance IllegalArgumentException com a mensagem "Age cannot be greater than 150"
  • Se strict for true e age for 0: lance IllegalArgumentException com a mensagem "Age cannot be zero in strict mode"
  • Se nenhuma exceção for lançada: retorne age como uma string

Folha de consulta

A palavra-chave throw permite lançar uma exceção explicitamente:

throw new ExceptionType("Error message");

Componentes:

  • throw: Palavra-chave para lançar uma exceção
  • new ExceptionType: Cria uma nova exceção (como IllegalArgumentException)
  • "Error message": Descreve o que deu errado

Exemplo:

int age = -5;
if (age < 0) {
    throw new IllegalArgumentException("Age cannot be negative");
}

Experimente você mesmo

import java.util.Scanner;

public class Main {
    public static String validateAge(int age, boolean strict) {
        // Escreva seu código aqui
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int age = Integer.parseInt(scanner.nextLine());
        boolean strict = Boolean.parseBoolean(scanner.nextLine());
        
        try {
            System.out.println(validateAge(age, strict));
        } catch (IllegalArgumentException e) {
            System.out.println(e.getMessage());
        }
    }
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica e Fluxo