martes, 8 de diciembre de 2015

Programacion y Generalizacion

El <TipoExcepción> es un objeto que se instancia a partir de la clase correcta
(Throwable o alguna de sus subclases), justo en el momento de producirse el error, y
contiene información de la excepción producida.

Programación avanzada    
 En la estructura jerárquica de la librería de clases de Java, tenemos las clases que
implementan cada uno de los distintos tipos de error:

Java.lang.Throwable
  Exception
   RuntimeException
    ArithmeticException
    NullPointerException
    NumberFormatException
    ArrayIndexOutOfBoundsException
   ClassNotFoundException
   IOException
    EOFException
  Error

 La clase raíz es Throwable, la cual tiene dos subclases que clasifican los dos
grupos de tipos error posibles:

 Exception: son los errores habituales, capturables por el usuario. De esta
clase se derivan otras subclases, e incluso podemos derivar nosotros nuestras
propias clases.

 Error: son errores graves, en los que conviene no capturar su excepción y
dejar que aborte el programa de forma anormal. Suelen ser errores de
ejecución de la JVM.

Cuando se produce un error, se mira si hay una manejador para dicha excepción
en el método donde se ha producido. Si no se captura la excepción, se va retornando en
la pila de llamadas, hasta llegar a la función main() si no se hubiese capturado en
ninguna las funciones o métodos. Si en esta función tampoco se captura la excepción, se
ejecutará el manejador de excepciones por defecto, que consiste en abortar el
programa mostrando un mensaje significativo del error y el lugar donde se ha producido
(clase, método, número de línea, pila de llamadas, etc.).

 Cuando utilizamos las clases de Java (o nuestras), hay métodos que lanzan una
excepción (throw). Dependiendo del tipo de excepción estaremos obligados a capturar
la excepción generada o no. Por esto, debemos distinguir dos tipos de excepciones:

• Excepciones implícitas: no estamos obligados a capturarlas.
Son todas las de RuntimeException y Error.

• Excepciones explícitas: si estamos obligados a capturarlas.
Son ClassNotFoundException, IOException y EOFException.


Generación de errores
Programación avanzada    

 Otra posibilidad que tenemos en la gestión de errores es provocarlos de forma
explícita. Para ello utilizaremos las palabras clave: throw y throws.

 Vimos que la declaración de un método tenía la siguiente sintáxis:

[<Modif. método>] <TipoRetorno> <NombreMetodo> ( [<ListaParámetros>] ) [throws <Excepciones>]
{
 // Variables locales
 ...
 // Instrucciones o sentencias
 ...
 return (<Expresión>);
}


No hay comentarios:

Publicar un comentario