Diccionario de Excepciones
Todas las excepciones que aparecen en las tareas y en los códigos interpretados, con su significado en castellano, cuándo saltan y en qué páginas se usan.
Excepciones
Checked: Java obliga a capturarlas (try-catch) o declararlas (throws).
Unchecked: no es obligatorio.
| Excepción | Significado | Cuándo salta | Dónde aparece |
|---|---|---|---|
ExceptionChecked |
Excepción genérica | Es la clase padre de casi todas las excepciones que se pueden capturar. Al hacer catch (Exception e) se atrapa cualquier error, sin distinguir cuál ha sido. |
Tarea 3 |
IOExceptionChecked |
Error de entrada/salida | Falla cualquier operación de lectura o escritura: ruta que no existe, disco no accesible, permisos, fichero cerrado... Es obligatorio capturarla con try-catch o declararla con throws. |
Tarea 3 Tarea 5 Tarea 6 Tarea 7 Tarea 8 Tarea 9 Tarea 10 Tarea 11 Tarea 12 Tarea 13 Tarea 14 Tarea 15 Tarea 16 Tarea 17 Tarea 18 Tarea 19 Interpretación |
FileNotFoundExceptionChecked |
Fichero no encontrado | Es hija de IOException. Salta al abrir un flujo (FileReader, FileInputStream...) sobre un fichero que no existe o que no se puede abrir. Si se captura junto a IOException, va primero. |
Interpretación (págs. 14 y 14-15) |
EOFExceptionChecked |
Fin de fichero alcanzado | Es hija de IOException. Salta al intentar leer más datos de los que quedan con readUTF(), readInt(), readObject()... En nuestros códigos se usa para saber cuándo terminar el bucle de lectura. Ojo: read() de FileReader no la lanza, devuelve -1. |
Tarea 13 Tarea 15 Tarea 16 Interpretación |
ClassNotFoundExceptionChecked |
Clase no encontrada | Salta en readObject() cuando Java no encuentra la clase del objeto que se está leyendo (por ejemplo, Alumno). No es hija de IOException, por eso se captura con multicatch: IOException | ClassNotFoundException. |
Tarea 15 Tarea 16 Interpretación |
StreamCorruptedExceptionChecked |
Flujo de objetos corrupto | Es hija de IOException. Salta al leer objetos si la cabecera del fichero no es la esperada; ocurre al añadir objetos con un ObjectOutputStream normal, que escribe una segunda cabecera. Es el problema que resuelve MiObjectOutputStream. |
Tarea 16 (problema que resuelve) Interpretación |
SecurityExceptionUnchecked |
Excepción de seguridad | Salta cuando un gestor de seguridad o los permisos del sistema no permiten la operación. Al ser RuntimeException, declararla en el throws es opcional, como en el constructor protegido de MiObjectOutputStream. |
Tarea 16 Interpretación |
NullPointerExceptionUnchecked |
Puntero nulo | Salta al usar un objeto que vale null. Por ejemplo, listFiles() devuelve null si la ruta no existe o no es un directorio; por eso se comprueba contenido != null antes de recorrerlo. |
Tarea 1 (se evita con la comprobación) |
Jerarquía
Así se relacionan entre sí. Una excepción hija se puede capturar con el catch de cualquiera de sus padres.
Árbol de herencia
Throwable
└─ Exception
├─ IOException
│ ├─ FileNotFoundException
│ ├─ EOFException
│ └─ StreamCorruptedException
├─ ClassNotFoundException
└─ RuntimeException
├─ NullPointerException
└─ SecurityException