Menu
Coddy logo textTech

Exceções Personalizadas

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

Você pode criar sua própria classe de exceção estendendo a Exception classe. Isso é útil quando você precisa lidar com tipos específicos de erros em sua aplicação.

Aqui está como criar uma exceção personalizada:

public class AgeException extends Exception {
   public AgeException(String message) {
       super(message);
   }
}

E aqui está como usá-lo:

if (age < 0) {
   throw new AgeException("Invalid age: " + age);
}

Após executar o código acima com age = -5, o programa lança:

AgeException: Invalid age: -5

challenge icon

Desafio

Fácil

Crie uma classe de exceção personalizada chamada EmailException e um método chamado validateEmail que recebe um argumento:

  1. Uma String (email) para validar

O método deve lançar sua exceção personalizada com estas mensagens:

  • Se email for null: "Email cannot be null"
  • Se email estiver vazio: "Email cannot be empty"
  • Se email não contiver @: "Email must contain @"
  • Se email não contiver texto antes de @: "Email must have a local part"
  • Se a validação passar: retorne "Valid email"

Folha de consulta

Crie exceções personalizadas estendendo a classe Exception:

public class AgeException extends Exception {
   public AgeException(String message) {
       super(message);
   }
}

Lance exceções personalizadas usando a palavra-chave throw:

if (age < 0) {
   throw new AgeException("Invalid age: " + age);
}

Experimente você mesmo

import java.util.Scanner;

class EmailException extends Exception {
    public EmailException(String message) {
        super(message);
    }
}

public class Main {
    public static String validateEmail(String email) throws EmailException {
        // Escreva seu código aqui
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String email = scanner.nextLine();
        if (email.equals("null")) {
            email = null;
        }
        
        try {
            System.out.println(validateEmail(email));
        } catch (EmailException 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