Exceções checked e unchecked em Java: qual a diferença e como usá-las?
Olá a todos. Comecei a estudar Java e não consigo entender a diferença entre exceções checked (verificadas) e unchecked (não verificadas). Li a documentação, mas na prática ainda me confundo.
Por exemplo, escrevo um método simples que lê um arquivo:
```java
public void readFile(String path) {
FileReader file = new FileReader(path);
BufferedReader reader = new BufferedReader(file);
String line = reader.readLine();
System.out.println(line);
}
```
O compilador reclama de `FileReader` e `readLine()` — diz que é preciso tratar `FileNotFoundException` e `IOException`. Eu envolvo em `try-catch` e funciona. Mas depois escrevo um método que divide números:
```java
public int divide(int a, int b) {
return a / b;
}
```
Se passar `b = 0`, o programa falha com `ArithmeticException`, mas o compilador não exige que eu trate nada. Por que isso? Qual é a lógica? Quando usar `throws` e quando usar `try-catch`? E como projetar minhas próprias exceções corretamente?
No answers yet.
Faça login para deixar uma resposta
Blogs