| En base a su ambiente, abra un Editor de Textos para generar el siguiente ejemplo. |
Código 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 explícitamente en f()");
throw new MiError("Originado en f()");
}
public static void g() throws MiError {
System.out.println("Generando Error explícitamente 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 diseñadas 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 porjava.lang.Exceptionya que posee mayores funcionalidades(métodos); inclusive si observa la documentación del JDK, notará que la Clasejava.lang.Exceptionhereda ("inherit") el comportamiento de la Clasejava.lang.Throwable, en efecto teniendo acceso a cualquiera de los métodos/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 través del vocablosuper.Otro es el constructor sin argumentos que debe ser declarado al emplearse más de un constructor.
Clase DefinirErrores
Esta Clase define dos métodos llamados
f()yg(), una característica especifica de estos métodos es que utilizan el vocablothrowsseguido de una Clase, esta sintaxis es obligatoria para los métodos 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 métodos capaces de generar errores.Dentro de cada método
f()yg()es generado un error con la claseMiErrorexplícitamente.En el método principal (
main) son definidos dos bloques try/catch, en uno de estos es llamado el métodof()y en otro el métodog().Al ser llamada la función de cada bloque, se genera un error del tipo
MiErrorpuesto que cada función invoca explícitamente este error.Cuando se detecta (atrapa) el error se entra en la sección catch donde es invocada la función
printStackTracevía la referenciae.NOTA: El métodoprintStackTracefue heredado ("Inherited") de la claseException.La Clase/método
System.errrepresenta el "Stream" de salida para cualquier error generado en un programa Java.
