NetRunner: Java Mastery Guide 1.0 Help

Exceções em Java

Hierarquia de Exceções

Throwable

Error

Exception

RuntimeException

CheckedException

Tipos de Exceções

1. Checked Exceptions

  • Verificadas em tempo de compilação

  • Devem ser declaradas ou tratadas

  • Exemplos: IOException, SQLException

public void readFile() throws IOException { FileReader file = new FileReader("arquivo.txt"); // código para ler arquivo }

2. Unchecked Exceptions (RuntimeException)

  • Não verificadas em tempo de compilação

  • Geralmente indicam erros de programação

  • Exemplos: NullPointerException, ArrayIndexOutOfBoundsException

public void processArray(int[] array) { // Pode lançar NullPointerException ou ArrayIndexOutOfBoundsException int value = array[10]; }

3. Errors

  • Problemas graves na JVM

  • Não devem ser tratados pelo programa

  • Exemplos: OutOfMemoryError, StackOverflowError

Exceções Comuns

  1. NullPointerException

String str = null; str.length(); // Lança NullPointerException
  1. ArrayIndexOutOfBoundsException

int[] array = new int[5]; array[10] = 1; // Lança ArrayIndexOutOfBoundsException
  1. IllegalArgumentException

public void setAge(int age) { if (age < 0) { throw new IllegalArgumentException("Idade não pode ser negativa"); } }

Boas Práticas

  1. Seja Específico

  • Use exceções específicas em vez de genéricas

  • Ajuda na identificação e tratamento do problema

  1. Documente as Exceções

/** * @throws IllegalArgumentException se o valor for negativo * @throws IOException em caso de erro de leitura */ public void processValue(int value) throws IOException { // implementação }
  1. Mantenha a Granularidade

  • Lance exceções no nível mais baixo possível

  • Trate no nível apropriado da aplicação

Exemplos Práticos

Exemplo 1: Validação de Entrada

public class UserValidator { public void validateUsername(String username) { if (username == null || username.trim().isEmpty()) { throw new IllegalArgumentException("Username não pode ser vazio"); } if (username.length() < 3) { throw new IllegalArgumentException("Username deve ter no mínimo 3 caracteres"); } } }

Exemplo 2: Operações de Arquivo

public class FileProcessor { public String readFile(String path) throws IOException { try (BufferedReader reader = new BufferedReader(new FileReader(path))) { return reader.readLine(); } } }

Próximos Passos

Recursos Adicionais

26 June 2025