Excepciones checked y unchecked en Java: ¿cuál es la diferencia y cómo usarlas?
Hola a todos. Empecé a estudiar Java y no logro entender la diferencia entre excepciones checked (verificadas) y unchecked (no verificadas). Leí la documentación, pero en la práctica sigo confundiéndome.
Por ejemplo, escribo un método simple que lee un archivo:
```java
public void readFile(String path) {
FileReader file = new FileReader(path);
BufferedReader reader = new BufferedReader(file);
String line = reader.readLine();
System.out.println(line);
}
```
El compilador se queja de `FileReader` y `readLine()` — dice que hay que manejar `FileNotFoundException` y `IOException`. Lo envuelvo en un `try-catch` y funciona. Pero luego escribo un método que divide números:
```java
public int divide(int a, int b) {
return a / b;
}
```
Si paso `b = 0`, el programa falla con `ArithmeticException`, pero el compilador no exige manejar nada. ¿Por qué? ¿Cuál es la lógica? ¿Cuándo usar `throws` y cuándo `try-catch`? ¿Y cómo diseñar correctamente mis propias excepciones — heredar de `Exception` o de `RuntimeException`?
No answers yet.
Inicia sesión para dejar una respuesta
Blogs