Sei sulla pagina 1di 2

Cdigo Fuente DefinirErrores.

java

class MiError extends Exception { public MiError() {} public MiError(String msg) { super(msg); } } public class DefinirErrores { public static void f() throws MiError { System.out.println("Generando Error explcitamente en f()"); throw new MiError("Originado en f()"); } public static void g() throws MiError { System.out.println("Generando Error explcitamente g()"); throw new MiError("Originado en g()"); } public static void main(String[] args) { try { f(); } catch(MiError e) { e.printStackTrace(System.err); } try { g(); } catch(MiError e) { e.printStackTrace(System.err); } } } En el archivo fuente anterior son diseadas dos Clases : MiError que define un error ("Exception") propietario y DefinirErrores que hace uso de esta Clase.

Clase MiError Esta clase hereda ("Inherit") el comportamiento de Exception, esto permite utilizar funcionalidades ya definidas en esta Clase. NOTA: Aunque la clase base de todo error ("Exception") esjava.lang.Throwable, generalmente se opta por java.lang.Exception ya que posee mayores funcionalidades(mtodos); inclusive si observa la documentacin del JDK, notar que la Clasejava.lang.Exception hereda ("inherit") el comportamiento de la Clase java.lang.Throwable, en efecto teniendo acceso a cualquiera de los mtodos/campos disponibles en la Clase Base.

Son definidos dos constructores para esta Clase: Uno de estos recibe un String como valor de entrada y a su vez manda llamar la Clase Base (Exception) a travs del vocablo super.

Otro es el constructor sin argumentos que debe ser declarado al emplearse ms de un constructor.

Clase DefinirErrores Esta Clase define dos mtodos llamados f() y g(), una caracterstica especifica de estos mtodos es que utilizan el vocablo throws seguido de una Clase, esta sintaxis es obligatoria para los mtodos que puedan generar errores, debe hacerse fuerte nfasis que esto es independiente de las declaraciones hechas en los bloques try/catch, es simplemente una sintaxis para los mtodos capaces de generar errores.

Dentro de cada mtodo f() y g() es generado un error con la clase MiError explcitamente.

En el mtodo principal (main) son definidos dos bloques try/catch, en uno de estos es llamado el mtodof() y en otro el mtodo g(). Al ser llamada la funcin de cada bloque, se genera un error del tipo MiError puesto que cada funcin invoca explcitamente este error. Cuando se detecta (atrapa) el error se entra en la seccin catch donde es invocada la funcinprintStackTrace va la referencia e.NOTA: El mtodo printStackTrace fue heredado ("Inherited") de la clase Exception. La Clase/mtodo System.err representa el "Stream" de salida para cualquier error generado en un programa Java.

Potrebbero piacerti anche