Em Java, só existe uma situação real onde o compilador te obriga a tratar exceçÔes:

✅ Quando vocĂȘ lida com EXCEÇÕES VERIFICADAS (Checked Exceptions).

Fora isso, tudo o resto Ă© opcional, embora recomendado dependendo do caso.


✅ 1. Quando vocĂȘ Ă© OBRIGADO a tratar: Checked Exceptions

As checked exceptions devem SEMPRE ser tratadas com:

📌 Elas acontecem em situaçÔes externas ao nosso controle → arquivos, rede, banco de dados etc.

Exemplos de checked exceptions:


📝 Exemplo 1 — Declarando com throws

public void lerArquivo(String caminho) throws IOException {
    BufferedReader br = new BufferedReader(new FileReader(caminho));
}

📝 Exemplo 2 — Tratando com try/catch

try {
    lerArquivo("teste.txt");
} catch (IOException e) {
    System.out.println("Erro ao ler o arquivo!");
}

✔ O compilador exige um dos dois.