You are on page 1of 4

22/3/2015

Excepciones(Exception)enJava,conejemplosJarroba

Excepciones(Exception)enJava,con
ejemplos
EnJavaloserroresentiempodeejecucin(cuandoseesta
ejecutando el programa) se denominanexcepciones, y esto ocurre
cuando se produce un error en alguna de las instrucciones de
nuestro programa, como por ejemplo cuando se hace una divisin
entrecero,cuandounobjetoesnullynopuedeserlo,cuandonose
abre correctamente un fichero, etc. Cuando se produce
una excepcin se muestra en la pantalla un mensaje de error y
finalizalaejecucindelprograma.
En Java (al igual que en otros lenguajes de programacin),
existenmuchotiposdeexcepcionesyenumerarcadaunodeellos
seriacasiunalaborinfinita.Enloreferentealasexcepcioneshayquedecirqueseaprendenabase
experiencia,deencontrarteconellasydesabersolucionarlas.
Cuando en Java se produce una excepcin se crear un objeto de una determina clase
(dependiendodeltipodeerrorquesehayaproducido),quemantendrlainformacinsobreelerror
producidoynosproporcionarlosmtodosnecesariosparaobtenerdichainformacin.Estasclases
tienen como clase padre la clase Throwable, por tanto se mantiene una jerarqua en las
excepciones.Acontinuacinmostramosalgunasdelasclasesparaquenoshagamosunaideadela
jerarqua que siguen las excepciones, pero existen muchsimas ms excepciones que las que
mostramos:

A continuacin vamos a mostrar un ejemplo de como al hacer una divisin entre cero, se
produceunaexcepcin.Veamoslasiguienteimagenenelquepodemosverunfragmentodecdigo
yelresultadodelaejecucindelcdigo:
data:text/htmlcharset=utf8,%3Ch1%20class%3D%22textcenter%22%20style%3D%22boxsizing%3A%20borderbox%3B%20margin%3A%200px%200 1/4

22/3/2015

Excepciones(Exception)enJava,conejemplosJarroba

Comovemosennuestroprogramatenemos3instrucciones.Laprimeradebedeimprimirpor
pantallaelmensajeANTESDEHACERLADIVISIN,lasegundadebedehacerladivisinyla
ltimadebedeimprimirporpantallaelmensajeDESPUESDEHACERLADIVISIN.Laprimera
instruccin la ejecuta perfectamente, pero al llegar a la segunda se produce una
ArithmeticException (excepcin de la clase ArithmeticException) y se detiene la ejecucin del
programayaqueestamosdividiendounnmeroentre0.
PorsuerteJavanospermitehaceruncontroldelasexcepcionesparaquenuestroprograma
no se pare inesperadamente y aunque se produzca una excepcin, nuestro programa siga su
ejecucin.Paraellotenemoslaestructuratrycatchfinallyquelamostramosacontinuacin:
try{

//Instruccionescuandonohayunaexcepcin

}catch(TypeExceptionex){

//Instruccionescuandoseproduceunaexcepcion

}finally{

//Instrucionesqueseejecutan,tantosihaycomosi
nohayexcepciones
}

Respecto a la estructura try catch finally, se ha de decir que primero se ejecuta el


data:text/htmlcharset=utf8,%3Ch1%20class%3D%22textcenter%22%20style%3D%22boxsizing%3A%20borderbox%3B%20margin%3A%200px%200 2/4

22/3/2015

Excepciones(Exception)enJava,conejemplosJarroba

bloquetry,siseproduceunaexcepcinseejecutaelbloquecatchyporltimoelbloquefinally.
Enestaestructurasepuedeomitirelbloquecatchoelbloquefinally,peronoambos.
Sabiendoestaestructura,podemosreescribirnuestroprogramaparaqueseejecutenlastres
instruccionesaunqueseproduzcaunaexcepcin.Previamentedebemosdesabercualvaaserla
clase de la excepcin que puede aparecer que seria la ArithmeticException para definirla en la
parte del catch. Nuestro programa quedara de la siguiente forma y se ejecutara sin problema
obteniendotambinlainformacindelaexcepcin:

ComovemoscapturamoslaexcepcinenunobjetoexdelaclaseArithmeticExceptiony
podemos obtener el mensaje de error que nos da la excepcin. Vemos tambin que el programa
terminasuejecucinaunquesehayaproducidounaexcepcin.
Dentrodeunamismaestructurapodemosdefinirtodaslasexcepcionesquequeramos.Enel
caso anterior hemos definido solo la excepcin ArithmeticException pero por ejemplo, podemos
definir tambin la excepcin NullPointerException, por si nos viene un valor a null al hacer la
divisin:

data:text/htmlcharset=utf8,%3Ch1%20class%3D%22textcenter%22%20style%3D%22boxsizing%3A%20borderbox%3B%20margin%3A%200px%200 3/4

22/3/2015

Excepciones(Exception)enJava,conejemplosJarroba

Enresumen,hemospuestoenestaentradaunejemplomuysencilloparacontrolarunparde
excepcionesbastanteobviascomoladivisinentre0yunnull,queperfectamentelopodramos
haber controlado con una sentencia de control if mirando el contenido de los atributos, pero la
finalidad de esta entrada era ver como controlar las excepciones con la estructura try catch
finally,quesilosabemosutilizarnuestroprogramadeberseguirfuncionandoaunqueseproduzcan
excepciones. Decir tambin que es casi imposible aprenderse todas las excepciones que hay en
Java(asquenoospongisaempollarlasunaaunaporqueigualnoutilizareisniel10%delasque
hay)yaqueestaslasirisaprendiendosegnoslasvayisencontrandoenvuestrosdesarrollos.
Estasqueoshemosmostradossonbastantecomunesaligualquelasqueospodisencontrarcon
eltratamientodeficheros,dearrays,etc.

data:text/htmlcharset=utf8,%3Ch1%20class%3D%22textcenter%22%20style%3D%22boxsizing%3A%20borderbox%3B%20margin%3A%200px%200 4/4

You might also like