Sei sulla pagina 1di 32

Excepciones

Excepciones - Introduccin
En Java, una excepcin es la
indicacin de un problema que
ocurre durante la ejecucin de un
programa.
Una excepcin, como el nombre lo
dice, indica que el problema puede o
no ocurrir. Si ocurre sta excepcin a
la regla, es con poca frecuencia.

Excepciones Introduccin
El manejo de excepciones permite
crear
aplicaciones
que
pueden
resolver o manejar las excepciones.
De ese modo, el programa puede
continuar como si no hubiera habido
algn problema.

Excepciones - Introduccin
Los programas evalan condiciones
que determinan cmo debe proceder
la ejecucin.
Realizar una tarea
Si la tarea no se ejecut de manera correcta
Procesar los errores o dar marcha atrs

Realizar la siguiente tarea


Si la tarea no se ejecut de manera correcta
Procesar los errores o dar marcha atrs

Excepciones - Introduccin
En lenguajes donde no existe el
manejo de excepciones, conlleva a
crear aplicaciones poco robustas,
propensas
a
fallos,
con
un
mantenimiento lento, etc.

Excepciones - Sintaxis
try
{
//Tasks
}
catch (Tip oExcep cion n om b re)
{
//Instrucciones
}

Excepciones Sin manejo


p u b lic class Excep cion es {
p u b lic static void m ain (S trin g
arg s[])
{
in t n u m ero = 10;
in t resu ltad o;
resultado = num ero / 0;
System .out.println(resultado);
}
}

Salida
Exception in thread
"m ain"
java.lang.Arithm etic
Exception: / by zero
at
m x.uanl.ceti.excepci
ones.Excepciones.m
ain(Excepciones.jav
a:9)

Excepciones con manejo


p u b lic class Excep cion es {
p u b lic static void m ain (S trin g arg s[]) {
in t n u m ero = 10;
in t resu ltad o;
try {
resultado = num ero / 0;
System .out.println(resultado);
}
catch (A rith m eticExcep tion ae) {
System .out.println("N o se puede dividir por
cero.");
}
System .out.println("Podem os ejecutar
otras operaciones");
//etc etc etc....
}
}

Salida
No se puede dividir
por cero.
Podemos ejecutar
otras operaciones

Excepciones sin manejo


p u b lic class Excep cion es {
p u b lic static void m ain (S trin g
arg s[])
{
in t n u m ero = 10;
in t resu ltad o;
resultado = num ero *
Integer.parseInt("4.5");

System .out.println(resultado);

Salida
Exception in thread "m ain"
java.lang.N um berForm atExce
ption: For input string: "4.5"
at
java.lang.N um berForm atExce
ption.forInputString(U nknow n
Source)
at
java.lang.Integer.parseInt(U nk
now n Source)
at
java.lang.Integer.parseInt(U nk
now n Source)
at
m x.uanl.ceti.excepciones.Exce
pciones.m ain(Excepciones.jav
a:9)

Excepciones con manejo


p u b lic class Excep cion es {
p u b lic static void m ain (S trin g arg s[])
{
in t n u m ero = 10 ;
in t resu ltad o;
try
{
resultado = num ero * Integer.parseInt("4.5");
System .out.println(resultado);

}
catch (N u m b erForm atExcep tion e)
{
System .out.println("N o se puede .");
}
System .out.println("Podem os ejecutar otras operaciones");
//etc etc etc....

Salida
No se puede convertir el
string.
Podemos ejecutar otras
operaciones

Excepciones
try
{
//Tasks
}
catch (Tip oExcep cion n om b re0 )
{
//Instrucciones
}
catch (Tip oExcep cion n om b re1 )
{
//Instrucciones
}

catch (Tip oExcep cion n om b reN )


{
//Instrucciones
}

Particular
A
General

Excepciones - Jerarqua
No debe ser atrapado

Porcin de jerarqua de clases dentro de Throwable

Excepciones - finally
try
{
//Tasks
}
catch (Tip oExcep cion n om b re)
{
//Instrucciones
}
fi
n ally
{
//Siem pre se ejecuta
}

Excepciones - Lanzar
try
{
th row n ew Excep tion ();
}
catch (Excep tion e)
{
System .out.println("Se forz una
excepcin");
}

Excepciones - Personalizar
p u b lic class N om bre exten d s Exception
{
N om bre(param etros)
{
su p er("Texto delerror");
}

Excepciones - comunes

ClassCircularityError: Se detect una herencia circular entre clases.


ClassFormatError: Una clase cargada no ha sido incompletamente descrita.
UnsupportedClassVersionError: La versin de una clase no es correcta.
ExceptionInInitializerError: Error al iniciar un miembro static.
IncompatibleClassChangeError: En una clase, su interfaz no es igual al
declarado
AbstractMethodError: Se ha invocado un mtodo abstracto.
IllegalAccessError: La aplicacin intent acceder a algn miembro no visible.
InstantiationError: Se intent instanciar una clase abstracta o interfaz.
NoSuchFieldError: No se encontr determinado atributo.
NoSuchMethodError: No se encontr determinado mtodo.
NoClassDefFoundError: No se encontr una clase cuando se necesitaba.
UnsatisfiedLinkError: Se encontr un enlace insatisfecho en un mtodo nativo.
VerifyError: Se ha producido un error de verificacin al cargar una clase.
ThreadDeath: Se ha lanzado en el thread vctima tras llamar a stop().

Excepciones - comunes
VirtualMachineError: La mquina virtual se ha averiado o quedado sin recursos.

InternalError: Error interno en tiempo de ejecucin.


OutOfMemoryError: El lector ha agotado la memoria.
StackOverflowError: Desbordamiento de pila. Recursin infinita?.
UnknownError: Grave error desconocido.

CloneNotSupportedException: No se pudo copiar un objeto mediante clone().


IllegalAccessException: Algn mtodo invocado es no visible.
InstantiationException: Se ha intentado instanciar una interfaz o una clase abstracta.
InterruptedException: Cuando se invoca a interrupt() sobre un thread dormido.
NoSuchFieldException: La clase no tiene un atributo con ese nombre.
NoSuchMethodException: La clase no tiene un mtodo con ese nombre.

Excepciones - comunes
ArithmeticException: Error de clculo (como divisin por cero...).
ArrayStoreException: Intento de almacenar un objeto equivocado en un vector.
ClassCastException: Intento de conversin invlida.
IllegalArgumentException: Se ha pasado un argumento invlido a un mtodo:
IllegalThreadStateException: Un thread no estaba en el estado adecuado.
NumberFormatException: Una cadena contenedora de un nmero, no lo contiene.
IllegalMonitorStateException: Se ha usado wait/notify fuera de cdigo sincronizado.
IllegalStateException: Mtodo invocado en un momento inapropiado.
IndexOutOfBoundsException: Acceso a un vector fuera de sus lmites:
ArrayIndexOutOfBoundsException: Idem, para una matriz.
StringIndexOutOfBoundsException: Idem, para una cadena.
NegativeArraySizeException: Intento de creacin de un vector de tamao negativo.
NullPointerException: Se ha usado una referencia null para acceder a un campo.
SecurityException: Algo ha sido vedado por el sistema de seguridad.
UnsupportedOperationException: Una operacin invocada no se soporta.

Archivos y Flujos

Archivos y flujos Introduccin


El almacenamiento de elementos en
arreglos es temporal; los datos se
pierden cuando una variable queda
fuera de alcance o cuando el
programa termina.
El
procesamiento
de
archivos
mantiene los datos persistentes y es
indispensable para el manejo de
informacin.

Archivos y flujos - Jerarqua


Un campo est compuesto de
caracteres y bytes que transmite
cierto significado.
La
jerarqua
de
datos
est
compuesta por conjuntos de campos
que van dando un orden especfico a
la informacin.

Archivos y flujos - Jerarqua


Un conjunto de campos
relacionados es un registro.

(clase)

De ese modo, un archivo es un


conjunto de registros ordenados.

Archivos y flujos
Java considera a cada archivo como
un flujo de informacin.
Dos tipos de flujos: basados en bytes
y basados en caracteres.

Archivos y flujos - File


La clase File recupera informacin acerca de
los archivos.
No proporciona mecanismos de lectura y/o
escritura de archivos, pero es indispensable
para el uso de otras clases con estos
objetivos.
Para el manejo de estas clases se hace uso
del paquete java.io.

Archivos y flujos - File

Archivos y flujos - File

Archivos y flujos - File

Archivos y flujos - File


Ejemplo:
File nom bre = n ew File(ru ta);

Archivos y flujos
La lectura y escritura byte a byte
hacia el disco es excesivamente
lenta, para esto podemos utilizar el
buffer.
Java
proporciona
clases
como
BufferedWriter y BufferedReader para
solventar esto.

Archivos y flujos
Pasos para escribir en un archivo
Crear objeto File
Crear objeto FileWriter enviando como
parmetro al constructor el objeto File.
Crear
objeto
BufferedWriter
para
almacenar la informacin.
Crear objeto PrintWriter para mandar el
buffer al disco.
Cerrar instancias

Archivos y flujos
Pasos para leer archivos
Crear objeto File
Crear objeto FileReader enviando como
parmetro
el
objeto
File
a
su
constructor.
Crear objeto BufferedReader.
Iterar por las lineas del archivo.
Imprimir lineas del archivo
Cerrar instancias

Archivos y flujos - Ejercicio


Cree una aplicacin en Java que
almacene las calificaciones de 5
alumnos.
Luego,
escriba
dicha
informacin en el interior de un
archivo de texto y almacnelo en el
escritorio de su computadora.
Considere crear clases y
arreglos para el manejo
informacin.

utilizar
de la

Potrebbero piacerti anche