Вы находитесь на странице: 1из 4

1

EXCEPCIONES EN JAVA
Creación y diseño de excepciones propias

W. Pavón, Escuela Politécnica del Ejército

 intento de división entera entre 0, un acceso a posiciones de un


Resumen—El resumen no debe pasar de 150 palabras y no array fuera de los límites del mismo o un fallo durante la
puede contener ecuaciones, figuras, tablas ni referencias. Debe lectura de datos de la entrada salida.
relatar concisamente lo que se ha hecho, cómo se ha hecho, los Captura de excepciones en java es una herramienta que
resultados principales y su relevancia.
permite al programa sobreponer a estas situaciones, pudiendo
Palabras clave— el programador decidir acciones a realizar para cada tipo de
Excepción.- es una situación anómala que puede producirse excepciones que pueda ocurrir.
durante la ejecución de un programa, como puede ser un
intento de división entera entre 0, un acceso a posiciones de B. Herencia de clases Exception y Error
un array fuera de los límites del mismo o un fallo durante la
lectura de datos de la entrada salida.
Captura de excepciones.- es una herramienta que permite al
programa sobreponer a estas situaciones, pudiendo el
programador decidir acciones a realizar para cada tipo de
excepciones que pueda ocurrir.

I. INTRODUCCIÓN
En java existen excepciones que controlan los errores
comunes de los programas, que pasará cuando necesitamos
que estas excepciones no san específicas, y no puedan
controlar ciertos controles que nosotros deseáramos que
cumplan , como definirlas, declararlas y ponerlas en práctica
C. Clases de Excepción
en un programa de aplicación real.
Al producirse un error una excepción en un programa, se crea
II. DESARROLLO DEL ARTÍCULO un objeto de la subclase de Exception a la que pertenece la
Las excepciones son una forma de controlar los errores de excepción.
nuestra aplicación en tiempo de ejecución, se aclarará que
D. Captura de Excepciones
existen diferentes excepciones ya pre-establecidas por java que
controlan los errores más comunes, como podemos cambiar la El mecanismo de capturar excepciones de Java, permite
estructura para que tal o cual excepción controle un error que “atrapar” el objeto de excepción lanzado por la instrucción e
nosotros como programadores queremos controlar. indicar las diferentes acciones a realizar según la clase de
excepción producida.
O de otra manera como definir nuevas excepciones con código
propio las cuales cumplan funciones específicas, como
Los bloques try… catch… finally
declarar novísimas excepciones. Como podemos diseñarlas En la figura 2 se muestra la utilización y sintaxis de estos
para, por ejemplo, diferenciar la naturaleza de un dato (double diferentes bloques.
o entero). Podemos realizar este tipo de excepciones para
satisfacer esta necesidad. O será posible construir nuevas
excepciones para controlar un dato ingresado o realizar la
validación de datos.
A. Excepciones y Errores
Una excepción es una situación anómala que puede producirse
durante la ejecución de un programa, como puede ser un
2

Para lanzar una excepción desde código utilizamos la


expresión que aparece en la figura 4.

Fig.4. Lanzar Excepción

Donde objeto_exception es un objeto de alguna subclase de


Exception.
Fig.2. Estructura de código para la captura de excepciones
F. Clases de Excepciones personalizadas
Cuando un método necesita lanzar una excepción como forma
de notificar una situación anómala, puede suceder que las
clases de excepción existentes no se acuden a las
características de la situación que quieren notificar.
Por ejemplo deseamos crear una excepción la cual se
Ejemplo.- determine que una cédula de ciudadanía ecuatoriana es falsa,
es este caso es inútil cualquiera de las excepciones pre-
existentes.
Por ello, para el ejemplo planteado podemos definir la
siguiente clase

CedulaException.java
public class CedulaException extends Exception
{
public CedulaException(String Msm)
{
super(Msm);
Fig.3. Bloques para capturar una excepción }
}
Como podemos observar este código captura la excepción La cadena de texto recibida por el constructor permite
Dividirzero, la cual maneja el error de la división para cero, se personalizar el mensaje de error obtenido al llamar al método
utiliza los bloques de código try y catch; los cuales se explican getMessage() . para ello, es necesario suministrar dicha cadena
a continuación: al constructor de la clase Exception.

try El programa práctico el cual pondrá en práctica excepción


Es el bloque de código donde se prevé que se genere una cedulaException es el siguiente:
excepción. Es como si dijésemos "intenta estas sentencias y
mira a ver si se produce una excepción". El bloque try tiene public class P extends Datos
{
que ir seguido, al menos, por una cláusula catch o una cláusula
public static void main(String [] args){
finally. System.out.println("Este código CAPTURA la excepcion");

catch //exception de comprobacion cedula


Define las instrucciones que deberán ejecutarse en caso de que
String Cedula, verdadera;
se produzca un determinado tipo de excepción. Cedula=Leer("Ingrese Numero de Cedula ==> ");
try{
finally verdadera=new Valida().Cedula(Cedula);
Es el bloque de código que se ejecuta siempre, haya o no }
catch(CedulaException e){
excepción. Este bloque finally puede ser útil cuando no hay verdadera="Cedula Falsa!!";
ninguna excepción. Es un trozo de código que se ejecuta }
independientemente de lo que se haga en el bloque try. System.out.println(verdadera);
System.out.println("");
}
E. Lanzamiento de una Excepción }

Puede resultar útil generar y lanzar una excepción desde el La clase que determina si la cédula es falsa y lanza la
interior de un determinado método. Esto puede utilizarse como cedulaException es la siguiente:
un medio para enviar un aviso a otra parte del programa,
public class Valida
indicándole que algo está sucediendo y no es posible continuar {
con la ejecución normal del método.
3

//METODO QUE DEFINE SI UNA CEDULA ES VERDADERA O }


FALSA
public String Cedula(String cedula)throws CedulaException{ Dividirzero.java
int [] A=new int[10]; public class Dividirzero extends ArithmeticException
int [] B={2,1,2,1,2,1,2,1,2,1}; {
int [] C=new int[10]; public Dividirzero(String Msm)
int dig=0; {
for(int i=0;i<A.length;i++){ super(Msm);
A[i]=Integer.parseInt(cedula.substring(i,i+1)); }
C[i]=A[i]*B[i]; }
if(C[i]>9){
C[i]-=9;
Como se observa en el programa, se encuentra por defecto una
}
dig+=C[i]; fracción la cual su denominador es 0, estos valores son
} enviados al método Divi, que está presto para lanzar la
dig-=C[9]; Excepción cuando el denominador es 0.
dig=(dig/10+1)*10-dig;
if(dig!=C[9])
throw new CedulaException("Cédula Falsa!"); Corrida del programa
else{
return "Cedula Verdadera";
}
}
}

G. PROGRAMAS

Fig.7. Advertencia de Excepción en corrida programa


Planteamiento del problema

Desarrollar un programa en donde se aplique los conceptos.


En el cual se declare un novísimo tipo de excepciones, el cual
se encargue de detectar como excepción tener una fracción que
tenga como denominado el cero (0). Tomar en cuenta que este
programa únicamente lanza la Excepción no la captura.

Diseño Aplicación

Fig.8. Advertencia de Excepción en corrida programa

En las figuras 8 y 9 observamos que nuestra nueva excepción


se comporta como las excepciones que ya se encuentran
Fig.5. diseño programa 1 preestablecidas; la cual detuvo el funcionamiento del programa
hasta que no se la capture. Tomemos en cuenta que el mensaje
Código Fuente “Error! División para 0” es el mensaje que enviamos a la clase
P.java padre excepciones el cual sea el mensaje de error que sea el
public class P que se despliegue
{
public static void main(String [] args){
int num=12,den=0; III. CONCLUSIONES
double resul;
resul=Divi(num,den);  Para realizar nuevas excepciones basta con declarar a
} una clase como hija de la clase Exception.
 Se puede crear excepciones diferentes a las existentes
public static double Divi(int num,int den)throws Dividirzero{
ya pre-establecidas en el lenguaje de programación
if(den==0){
System.out.println("Este código LANZA la excepcion"); java.
throw new Dividirzero("Error! division para 0");  Se pudo realizar las excepciones con las cuales se
} cumplió los objetivos planteamos.
else return ((double) num/(double) den);
}
 Logramos validar cédula por medio de excepciones.
4

Books (Libros):
[1] MARTIN, Antonio (2005). Programador Java 2 Certificado. Alfa-
Omega Ra-Ma. Edición 1. Pag.215-228.
[2] ECKEL, Bruce. Piensa en Java. Pearson Education S.A. 2007. 4ta
edición, impreso en España. Versión español, pag. 277-315

Wilson Pavón Vallejos nació en Quito, Ecuador, el 07 de Octubre del 1989.


Obtuvo el bachillerato en el Colegio Militar
Abdón Calderón.
Estudia actualmente Electrónica,
Automatización y Control en la Escuela
Politécnica del Ejército. Entre sus campos de
interés están la inteligencia Artificial y la
Automatización Industrial y su efecto en la
sociedad de consumo.
Otros intereses se han centrado, en la
desigualdad social, lo que ha motivado a
dedicarse a voluntariados sociales. Su tiempo
libre ha participado en concursos de oratoria,
ganando algunos de ellos. A su vez ha estado
inmerso como participante y organizador de congresos juveniles de liderazgo.
Se desempeña como profesor particular de ciencias exactas, y seminarista de
Relaciones Humanas.

Вам также может понравиться