Herramientas de usuario

Herramientas del sitio


bloque3:excepciones

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
bloque3:excepciones [29/11/2019 00:07] – [Excepciones] Fernando Valdeónbloque3:excepciones [16/09/2024 20:53] (actual) – editor externo 127.0.0.1
Línea 9: Línea 9:
   * ''unchecked'' : las excepciones de tipo ''Error'', ''Runtime Excepcion'' y sus subclases. No es obligatorio controlarlas.   * ''unchecked'' : las excepciones de tipo ''Error'', ''Runtime Excepcion'' y sus subclases. No es obligatorio controlarlas.
  
-Las excepciones ''checked'' (controladas) son tipos de errores de los que un programa debería poderse recuperar. Ocurren sobre todo a la hora de trabajar con ficheros. **El compilador de Java nos obliga a controlarlas**.+==== Jerarquía de clases de excepciones de Java ==== 
 +{{ :bloque3:jerarquiaexcepciones.png?600 |}}
  
-Las excepciones ''unchecked'' (no controladas) se deben a problemas ajenos a los métodos y clases de Java, como errores del código creados por el programador. El compilador no nos obliga a controlarlas. Ejemplos de estas excepciones son //StringIndexOutOfBoundsException, ArrayIndexOutOfBoundsException, NumberFormatException, NullPointerException//, etc. 
  
  
-{{ :bloque3:jerarquiaexcepciones.png?600 |}}+ 
 + 
 +==== Excepciones unchecked ==== 
 +Las excepciones ''unchecked'' (no controladas) se deben a problemas ajenos a los métodos y clases de Java, normalmente errores del código creado por el programador. El compilador no nos obliga a controlarlas.  
 + 
 +Ejemplos de estas excepciones son //StringIndexOutOfBoundsException, ArrayIndexOutOfBoundsException, NumberFormatException, NullPointerException//, etc. Las producen métodos de la clase String como ''charAt()'' o ''substring()'' cuando nos salimos de rango. También el método ''parseInt()'' de la clase Integer, cuando no le pasamos un String parseable.  
 + 
 +El compilador nos deja usarlas sin control de errores, y será el programador el encargado de gestionar su uso. 
 + 
 +====Excepciones checked==== 
 +Las excepciones ''checked'' (controladas) son tipos de errores de los que un programa debería poderse recuperar. Ocurren sobre todo a la hora de trabajar con ficheros. **El compilador de Java nos obliga a controlarlas**.  
 + 
 +Esto quiero decir que si un método produce algúna excepción de este tipo, la llamada a ese método dará un error de compilación (estará subrayada en rojo) hasta que usemos algún mecanismo de control de excepciones.
  
 Existen dos formas de controlar las excepciones ''checked'' dentro de un método: Existen dos formas de controlar las excepciones ''checked'' dentro de un método:
   * Con la sentencia ''try-catch''.   * Con la sentencia ''try-catch''.
   * Propagándolas: o sea, desentendiéndose del problema en el método actual para que lo resuelva el siguiente método.   * Propagándolas: o sea, desentendiéndose del problema en el método actual para que lo resuelva el siguiente método.
 +
 +
 +
  
  
Línea 65: Línea 80:
 En este bloque incluiremos los tipos de excepciones que queremos controlar, junto con el código que se ejecutará en caso de ocurrir.  En este bloque incluiremos los tipos de excepciones que queremos controlar, junto con el código que se ejecutará en caso de ocurrir. 
  
-En el momento en que una excepción se produzca en el bloque ''try'', se parará la ejecución del código y se ira al bloque ''catch'' que captura dicha excepción.+En el momento en que una excepción se produzca en el bloque ''try'', se parará la ejecución del código de ese bloque y se ira al bloque ''catch'' que captura dicha excepción, ejecutándo el código de este bloque.
  
-Si se pueden producir excepciones de distintos tipos es posible que haya distintos bloques ''catch'', uno por cada tipo que se quiera capturar. Estos deben ir del tipo más concreto al más general, ya que cuando se produce una excepción se evalúan en ese orden.+Si se pueden producir excepciones de distintos tipos es posible que haya distintos bloques ''catch'', uno por cada tipo que se quiera capturar. Estos deben ir del tipo más concreto de excepción al tipo más general, ya que cuando se produce una excepción, los bloques //catch// se evalúan en ese orden.
  
 ==== Bloque finally ==== ==== Bloque finally ====
Línea 98: Línea 113:
 </code> </code>
  
-Propagar excepciones se suele hacer cuando queremos centralizar el control de una serie de excepciones en un solo bloque de código //manejador de excepciones//. Puede que un método lance excepciones de un tipo y otro método de otro tipo, pero quiero controlarlas todas desde una lugar concreto del código del programa.+Propagar excepciones se suele hacer cuando queremos centralizar el control de una serie de excepciones en un solo bloque de código //manejador de excepciones//. Puede que un método lance excepciones de un tipo y otro método de otro tipo, pero quiero controlarlas todas desde un lugar concreto del código del programa.
 ===== Lanzar excepciones: throw ===== ===== Lanzar excepciones: throw =====
 De la misma forma que los métodos de la API de Java lanzan excepciones, también nuestros métodos pueden lanzarlas. De la misma forma que los métodos de la API de Java lanzan excepciones, también nuestros métodos pueden lanzarlas.
bloque3/excepciones.1574986020.txt.gz · Última modificación: 16/09/2024 20:53 (editor externo)