Excepciones En Java los errores son conocidos como excepciones. Cuando se produce una excepción, se crea un objeto del mismo tipo de la excepción. La clase  Throwable, es la superclase de todas las clases de manejo de errores.   Visita   FIEC Novedades y aplicaciones  FIEC
Excepciones Cuando se genera una excepción, el programa en java busca un manejador para el error (handler). El handler es una porción de código que identifica el tipo de objeto correspondiente al error que se ha producido, y contiene sentencias que se van a ejecutar luego de que ocurrió el error. Visita   FIEC Novedades y aplicaciones  FIEC
Excepciones Se pueden dar  varios tipos de errores: Al tratar de acceder a elementos de arreglos con un índice mayor al del último elemento del arreglo. Divisiones para cero. Manejo de archivos. No existe, no se tienen suficientes permisos, etc. Errores accediendo a bases de datos. Errores definidos por el usuario Tarjeta incorrecta, excede cupo de transferencia, etc. Visita   FIEC Novedades y aplicaciones  FIEC
Tipos de Excepciones Checked:  Son las excepciones que revisa el compilador. Unchecked:  Son las excepciones que no revisa el compilador y se dan en tiempo de ejecución.  Ejemplo:  RuntimeException Clase Error,  maneja Errores de la JVM Clase Exception, maneja errores del programa Visita   FIEC Novedades y aplicaciones  FIEC
Excepciones Ver archivo:  StackUnwinding.java Visita   FIEC Novedades y aplicaciones  FIEC
Declarando Excepciones La sentencia  throw  (lanzar) se usa en los métodos para lanzar una excepción que será revisada por el compilador ( checked exception) : throw new NombreClasedeExcepcion();  Un método que llama a otro que lanza una excepción, se debe declarar de la siguiente forma: modificador tipodatoretorno nombremetodo(.., ...)  throws NombreClasedeExcepcion Ejemplo:   public static String getInput(String prompt) throws  IOException { /* código */ } Múltiples excepciones pueden ser separadas por comas.  Ejemplo:  public void read(BufferedReader in ) throws IOException, ClassNotFoundException { /* código */ } Visita   FIEC Novedades y aplicaciones  FIEC
Manejando Excepciones Para manejar las excepciones y evitar que un programa termine por algún error se usa el bloque:  try-catch. Las sentencias del bloque try, que se encuentran después de la sentencia que causó la excepción no se ejecutarán. Visita   FIEC Novedades y aplicaciones  FIEC
Bloque try-catch El bloque try, encierra la porción de código donde se pueden producir excepciones.  (try en español es intentar). El bloque catch contiene el código que se va a ejecutar una vez que se produce un error (catch en español es atrapar). El bloque catch, tiene un argumento, que representa al tipo de excepción  que el manejador (handler) puede procesar. Por cada bloque try, hay por lo menos un bloque catch, de tal forma que se pueden capturar varios tipos de excepciones.
Bloque try-catch La clásula catch que recibe como argumento un objeto de tipo Exception, maneja todos los errores del programa, que no pueden ser atrapados por los otros demás bloques catch y debe ser puesto como último bloque catch. Recordar que Exception es la superclase de todas las excepciones que produce mi programa y puede manejar las excepciones producidas por sus subclases. Visita   FIEC Novedades y aplicaciones  FIEC
Proceso de Manejo de Excepciones usando el bloque try-catch Cuando ocurre una excepción en una parte del programa que está siendo manejada por un bloque try-catch, se deja de ejecutar el resto de instrucciones del bloque try y se pasa el control del programa al primer bloque catch. El programa busca  el bloque catch que pueda procesar el tipo de excepción que se ha dado.  Se compara el objeto que se creo cuando se produjo el error, con el tipo de excepción que recibe como parámetro el catch, y entra al catch cuyo argumento sea del mismo tipo o una superclase de la excepción que se produjo. Cuando se termina de ejecutar el bloque catch, los demás bloques catch son ignorados y la ejecución del programa continúa en la primera línea después del bloque try-catch. Visita   FIEC Novedades y aplicaciones  FIEC
Bloque finally try  { Sentencias; } catch (UnTipodeException ex1)  { sentencias de manejo de error; } catch (OtroTipodeException ex2)  { sentencias de manejo de error; } finally  {   //es opcional y contiene sentencias de liberación de recursos. } El bloque finally siempre se ejecuta independientemente de si se da o no una excepción.  Es opcional y se lo usa generalmente para liberar recusos. Ver archivo:  UsingExceptions.java
Métodos de la clase Throwable String getMessage() Retorna un mensaje grabado en el objeto de excepción. void printStackTrace() Muestra el contenido de la call stack.  Es útil para determinar en qué método ocurrió la excepción, y que otros métodos llamaron a este. Ver Excepciones.java Visita   FIEC Novedades y aplicaciones  FIEC
Ejercicio Crear una clase llamada  NumberDivision .  Esta clase contendrá un método que aceptará dos Strings, y realizará la división entre estos.  Usar el método parseInt() de la clase Integer (static int parseInt(String s)), para transformar de String a int.  Si los Strings no son números válidos se genera un  NumberFormatException ,Esta excepción debe ser capturada y un mensaje de error debe ser mostrado.  El segundo número es usado para dividir el primer número.  Si el segundo número es cero, una excepción  ArithmeticException  es lanzada.  Esta excepción debe ser atrapada y un mensaje de error debe ser mostrado. Ver archivo:  NumberDivision.java Ver también ejemplo adicional sobre como crear y usar sus propias clases de excepciones:  Student.java
Tarea de Excepciones Tarea 6, publicada en Metis.  Fecha de entrega:  Viernes 1 de Junio.  Visita   FIEC Novedades y aplicaciones  FIEC

excepciones_java en www.fiec.espol.edu.ec

  • 1.
    Excepciones En Javalos errores son conocidos como excepciones. Cuando se produce una excepción, se crea un objeto del mismo tipo de la excepción. La clase Throwable, es la superclase de todas las clases de manejo de errores. Visita FIEC Novedades y aplicaciones FIEC
  • 2.
    Excepciones Cuando segenera una excepción, el programa en java busca un manejador para el error (handler). El handler es una porción de código que identifica el tipo de objeto correspondiente al error que se ha producido, y contiene sentencias que se van a ejecutar luego de que ocurrió el error. Visita FIEC Novedades y aplicaciones FIEC
  • 3.
    Excepciones Se puedendar varios tipos de errores: Al tratar de acceder a elementos de arreglos con un índice mayor al del último elemento del arreglo. Divisiones para cero. Manejo de archivos. No existe, no se tienen suficientes permisos, etc. Errores accediendo a bases de datos. Errores definidos por el usuario Tarjeta incorrecta, excede cupo de transferencia, etc. Visita FIEC Novedades y aplicaciones FIEC
  • 4.
    Tipos de ExcepcionesChecked: Son las excepciones que revisa el compilador. Unchecked: Son las excepciones que no revisa el compilador y se dan en tiempo de ejecución. Ejemplo: RuntimeException Clase Error, maneja Errores de la JVM Clase Exception, maneja errores del programa Visita FIEC Novedades y aplicaciones FIEC
  • 5.
    Excepciones Ver archivo: StackUnwinding.java Visita FIEC Novedades y aplicaciones FIEC
  • 6.
    Declarando Excepciones Lasentencia throw (lanzar) se usa en los métodos para lanzar una excepción que será revisada por el compilador ( checked exception) : throw new NombreClasedeExcepcion(); Un método que llama a otro que lanza una excepción, se debe declarar de la siguiente forma: modificador tipodatoretorno nombremetodo(.., ...) throws NombreClasedeExcepcion Ejemplo: public static String getInput(String prompt) throws IOException { /* código */ } Múltiples excepciones pueden ser separadas por comas. Ejemplo: public void read(BufferedReader in ) throws IOException, ClassNotFoundException { /* código */ } Visita FIEC Novedades y aplicaciones FIEC
  • 7.
    Manejando Excepciones Paramanejar las excepciones y evitar que un programa termine por algún error se usa el bloque: try-catch. Las sentencias del bloque try, que se encuentran después de la sentencia que causó la excepción no se ejecutarán. Visita FIEC Novedades y aplicaciones FIEC
  • 8.
    Bloque try-catch Elbloque try, encierra la porción de código donde se pueden producir excepciones. (try en español es intentar). El bloque catch contiene el código que se va a ejecutar una vez que se produce un error (catch en español es atrapar). El bloque catch, tiene un argumento, que representa al tipo de excepción que el manejador (handler) puede procesar. Por cada bloque try, hay por lo menos un bloque catch, de tal forma que se pueden capturar varios tipos de excepciones.
  • 9.
    Bloque try-catch Laclásula catch que recibe como argumento un objeto de tipo Exception, maneja todos los errores del programa, que no pueden ser atrapados por los otros demás bloques catch y debe ser puesto como último bloque catch. Recordar que Exception es la superclase de todas las excepciones que produce mi programa y puede manejar las excepciones producidas por sus subclases. Visita FIEC Novedades y aplicaciones FIEC
  • 10.
    Proceso de Manejode Excepciones usando el bloque try-catch Cuando ocurre una excepción en una parte del programa que está siendo manejada por un bloque try-catch, se deja de ejecutar el resto de instrucciones del bloque try y se pasa el control del programa al primer bloque catch. El programa busca el bloque catch que pueda procesar el tipo de excepción que se ha dado. Se compara el objeto que se creo cuando se produjo el error, con el tipo de excepción que recibe como parámetro el catch, y entra al catch cuyo argumento sea del mismo tipo o una superclase de la excepción que se produjo. Cuando se termina de ejecutar el bloque catch, los demás bloques catch son ignorados y la ejecución del programa continúa en la primera línea después del bloque try-catch. Visita FIEC Novedades y aplicaciones FIEC
  • 11.
    Bloque finally try { Sentencias; } catch (UnTipodeException ex1) { sentencias de manejo de error; } catch (OtroTipodeException ex2) { sentencias de manejo de error; } finally { //es opcional y contiene sentencias de liberación de recursos. } El bloque finally siempre se ejecuta independientemente de si se da o no una excepción. Es opcional y se lo usa generalmente para liberar recusos. Ver archivo: UsingExceptions.java
  • 12.
    Métodos de laclase Throwable String getMessage() Retorna un mensaje grabado en el objeto de excepción. void printStackTrace() Muestra el contenido de la call stack. Es útil para determinar en qué método ocurrió la excepción, y que otros métodos llamaron a este. Ver Excepciones.java Visita FIEC Novedades y aplicaciones FIEC
  • 13.
    Ejercicio Crear unaclase llamada NumberDivision . Esta clase contendrá un método que aceptará dos Strings, y realizará la división entre estos. Usar el método parseInt() de la clase Integer (static int parseInt(String s)), para transformar de String a int. Si los Strings no son números válidos se genera un NumberFormatException ,Esta excepción debe ser capturada y un mensaje de error debe ser mostrado. El segundo número es usado para dividir el primer número. Si el segundo número es cero, una excepción ArithmeticException es lanzada. Esta excepción debe ser atrapada y un mensaje de error debe ser mostrado. Ver archivo: NumberDivision.java Ver también ejemplo adicional sobre como crear y usar sus propias clases de excepciones: Student.java
  • 14.
    Tarea de ExcepcionesTarea 6, publicada en Metis. Fecha de entrega: Viernes 1 de Junio. Visita FIEC Novedades y aplicaciones FIEC