apuntes:excepciones
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| apuntes:excepciones [2023/05/28 11:25] – Santiago Faci | apuntes:excepciones [2023/06/04 18:31] (current) – [Excepciones] Santiago Faci | ||
|---|---|---|---|
| Line 8: | Line 8: | ||
| que, en Java, acaban lanzando una excepción si llegan a producirse: | que, en Java, acaban lanzando una excepción si llegan a producirse: | ||
| - | * Estamos escribiendo en disco y éste se llena (//IOException//) | + | * Estamos escribiendo en disco y éste se llena ('' |
| - | * Estamos descargando un fichero y cae la conexión a Internet (//ConnectionException//) | + | * Estamos descargando un fichero y cae la conexión a Internet ('' |
| - | * Estamos recorriendo un array en un bucle y accedemos a una posición que no existe (\verb IndexOutOfBoundException ) | + | * Estamos recorriendo un array en un bucle y accedemos a una posición que no existe ('' |
| - | * Accedemos atributos o métodos de un objeto cuyo valor es nulo (//NullPointerException//) | + | * Accedemos atributos o métodos de un objeto cuyo valor es nulo ('' |
| - | * Realizamos una operación matemática no válida (división por cero) (//ArithmeticException//) | + | * Realizamos una operación matemática no válida (división por cero) ('' |
| - | En Java se propone el control de excepciones para evitar que se produzcan estos errores en lugar de tener que escribir continuamente estructuras | + | En Java se propone el control de excepciones para evitar que se produzcan estos errores en lugar de tener que escribir continuamente estructuras |
| - | Se recomienda excepciones como //NullPointerException// y //IndexOfOutBoundException// no se traten como tal ya que, por lo general, corresponderán a errores de codificación, | + | Se recomienda excepciones como '' |
| - | \subsection{Bloque try-catch} | + | ==== Tipos de Excepciones ==== |
| + | |||
| + | === Checked Exceptions === | ||
| + | |||
| + | * Excepciones que deben ser capturadas o declaradas en el método donde se producen | ||
| + | * Heredan directamente de la clase '' | ||
| + | * Por norma general serán el tipo de excepciones que deberemos capturar siempre en nuestro código | ||
| + | * '' | ||
| + | |||
| + | === Unchecked Exceptions === | ||
| + | |||
| + | * Excepciones que pueden ser lanzadas sin ser capturadas o declaradas | ||
| + | * Heredan de la clase '' | ||
| + | * Por norma general serán el tipo de excepciones que no deberemos capturar. Deberíamos evitar que se produjeran como, por ejemplo, en el caso de la excepción // | ||
| + | * '' | ||
| + | |||
| + | ==== Bloque try-catch | ||
| El bloque // | El bloque // | ||
| Line 34: | Line 50: | ||
| </ | </ | ||
| - | En este caso, el código que hay asociado al bloque //try// se ejecutará de forma que, si dentro de él se produjera una excepción, el | + | En este caso, el código que hay asociado al bloque //try// se ejecutará de forma que, si dentro de él se produjera una excepción, el flujo de ejecución pasaría al bloque |
| - | flujo de ejecución pasaría al bloque | + | |
| el grupo // | el grupo // | ||
| Line 194: | Line 209: | ||
| ==== Uso de recursos en bloques try-catch ==== | ==== Uso de recursos en bloques try-catch ==== | ||
| - | Como hemos visto en el primer ejemplo, accedíamos a un fichero en la excepción, para luego acabar liberando los recursos al finalizar el bloque // | + | Como hemos visto en el primer ejemplo, accedíamos a un fichero en la excepción, para luego acabar liberando los recursos al finalizar el bloque // |
| <code java> | <code java> | ||
| Line 214: | Line 229: | ||
| </ | </ | ||
| - | Para este caso, hay que tener en cuenta que, para que Java pueda liberar automáticamente los recursos de una clase Java, debemos implementar uno de los interfaces | + | Para este caso, hay que tener en cuenta que, para que Java pueda liberar automáticamente los recursos de una clase Java, debemos implementar uno de los interfaces |
| <code java> | <code java> | ||
| Line 231: | Line 246: | ||
| ===== Aserciones ===== | ===== Aserciones ===== | ||
| - | Las aserciones son sentencias utilizadas para comprobar si una condición es cierta (o no) y controlar asi los errores en el código. Básicamente equivale a una sentencia | + | Las aserciones son sentencias utilizadas para comprobar si una condición es cierta (o no) y controlar asi los errores en el código. Básicamente equivale a una sentencia |
| Veamos un ejemplo: | Veamos un ejemplo: | ||
| Line 247: | Line 262: | ||
| </ | </ | ||
| - | Si ejecutamos el código anterior con la opción | + | Si ejecutamos el código anterior con la opción |
| <code bash> | <code bash> | ||
| Line 259: | Line 274: | ||
| ---- | ---- | ||
| - | (c) 2019-2021 Santiago Faci | + | (c) 2019-{{date> |
apuntes/excepciones.1685273141.txt.gz · Last modified: by Santiago Faci
