Programación

1º DAM/DAW - Curso 2023-2024

User Tools

Site Tools


apuntes:excepciones

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
apuntes:excepciones [2023/05/28 23:50] – [Uso de recursos en bloques try-catch] Santiago Faciapuntes:excepciones [2023/06/04 18:31] (current) – [Excepciones] Santiago Faci
Line 17: Line 17:
  
 Se recomienda excepciones como ''NullPointerException'' y ''IndexOfOutBoundException'' no se traten como tal ya que, por lo general, corresponderán a errores de codificación, por lo que realmente, se debería evitar que se produjeran corrigiendo el programa y no esperando capturarlas cuando se produzcan. Son dos excepciones que derivan de ''RuntimeException''. Son lo que se conoce como //unchecked exceptions//. Echa un vistazo a [[https://docs.oracle.com/javase/tutorial/essential/exceptions/runtime.html|Documentación sobre excepciones]] para más información al respecto. Se recomienda excepciones como ''NullPointerException'' y ''IndexOfOutBoundException'' no se traten como tal ya que, por lo general, corresponderán a errores de codificación, por lo que realmente, se debería evitar que se produjeran corrigiendo el programa y no esperando capturarlas cuando se produzcan. Son dos excepciones que derivan de ''RuntimeException''. Son lo que se conoce como //unchecked exceptions//. Echa un vistazo a [[https://docs.oracle.com/javase/tutorial/essential/exceptions/runtime.html|Documentación sobre excepciones]] para más información al respecto.
 +
 +==== Tipos de Excepciones ====
 +
 +=== Checked Exceptions ===
 +
 +  * Excepciones que deben ser capturadas o declaradas en el método donde se producen
 +  * Heredan directamente de la clase ''Exception''
 +  * Por norma general serán el tipo de excepciones que deberemos capturar siempre en nuestro código
 +  * ''IOException'' y ''ParseException'' son dos ejemplos de excepciones //checked//
 +
 +=== Unchecked Exceptions ===
 +
 +  * Excepciones que pueden ser lanzadas sin ser capturadas o declaradas
 +  * Heredan de la clase ''RuntimeException'', que a su vez hereda de ''Exception''
 +  * 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 //unchecked// ''NullPointerException''
 +  * ''ArithmeticException'' y ''ArrayIndexOutOfBoundsException'' son otros ejemplos de excepciones "unchecked"
  
 ==== Bloque try-catch ==== ==== Bloque try-catch ====
Line 230: 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 //if// que evalúa una condición y genera una Excepción //AssertException// si ésta se cumple, mostrando el mensaje asociado a la misma. De forma similar a cómo hacen las excepciones, permite hacerlo de forma cómoda y sin romper el flujo del código. Además, estás condiciones en forma de aserción sólo tienen efecto si se pasa la opción //-ea// //-enableassertions// a la máquina virtual cuando se ejecuta la aplicación. De esta forma sólo se activan cuando es necesario o interesa utilizarlas.+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 ''if'' que evalúa una condición y genera una Excepción ''AssertException'' si ésta se cumple, mostrando el mensaje asociado a la misma. De forma similar a cómo hacen las excepciones, permite hacerlo de forma cómoda y sin romper el flujo del código. Además, estás condiciones en forma de aserción sólo tienen efecto si se pasa la opción ''-ea'' ''-enableassertions'' a la máquina virtual cuando se ejecuta la aplicación. De esta forma sólo se activan cuando es necesario o interesa utilizarlas.
  
 Veamos un ejemplo: Veamos un ejemplo:
Line 246: Line 262:
 </code> </code>
  
-Si ejecutamos el código anterior con la opción //-ea// activada como opción de la JVM, se nos mostrará el siguiente mensaje de error:+Si ejecutamos el código anterior con la opción ''-ea'' activada como opción de la JVM, se nos mostrará el siguiente mensaje de error:
  
 <code bash> <code bash>
apuntes/excepciones.1685317825.txt.gz · Last modified: 2023/05/28 23:50 by Santiago Faci