Excepciones (Exception) en Java, Con Ejemplos - Jarroba
-
Upload
fcaballerog -
Category
Documents
-
view
28 -
download
2
description
Transcript of Excepciones (Exception) en Java, Con Ejemplos - Jarroba
-
22/3/2015 Excepciones(Exception)enJava,conejemplosJarroba
data:text/htmlcharset=utf8,%3Ch1%20class%3D%22textcenter%22%20style%3D%22boxsizing%3A%20borderbox%3B%20margin%3A%200px%200 1/4
Excepciones(Exception)enJava,conejemplos
EnJavaloserroresentiempodeejecucin(cuandoseestaejecutandoel programa) sedenominanexcepciones, y esto ocurrecuando se produce un error en alguna de las instrucciones denuestro programa, como por ejemplo cuando se hace una divisinentrecero,cuandounobjetoesnullynopuedeserlo,cuandonoseabre correctamente un fichero, etc. Cuando se produceuna excepcin se muestra en la pantalla un mensaje de error yfinalizalaejecucindelprograma.
EnJava (al igualqueenotros lenguajesdeprogramacin),existenmuchotiposdeexcepcionesyenumerarcadaunodeellos
seriacasiunalaborinfinita.Enloreferentealasexcepcioneshayquedecirqueseaprendenabaseexperiencia,deencontrarteconellasydesabersolucionarlas.
Cuando en Java se produce una excepcin se crear un objeto de una determina clase(dependiendodeltipodeerrorquesehayaproducido),quemantendrlainformacinsobreelerrorproducidoynosproporcionarlosmtodosnecesariosparaobtenerdichainformacin.Estasclasestienen como clase padre la clase Throwable, por tanto se mantiene una jerarqua en lasexcepciones.Acontinuacinmostramosalgunasdelasclasesparaquenoshagamosunaideadelajerarqua que siguen las excepciones, pero existen muchsimas ms excepciones que las quemostramos:
Acontinuacinvamosamostrarunejemplodecomoalhacerunadivisinentre cero, seproduceunaexcepcin.Veamoslasiguienteimagenenelquepodemosverunfragmentodecdigoyelresultadodelaejecucindelcdigo:
-
22/3/2015 Excepciones(Exception)enJava,conejemplosJarroba
data:text/htmlcharset=utf8,%3Ch1%20class%3D%22textcenter%22%20style%3D%22boxsizing%3A%20borderbox%3B%20margin%3A%200px%200 2/4
Comovemosennuestroprogramatenemos3instrucciones.LaprimeradebedeimprimirporpantallaelmensajeANTESDEHACERLADIVISIN, lasegundadebedehacer ladivisiny laltimadebedeimprimirporpantallaelmensajeDESPUESDEHACERLADIVISIN.Laprimerainstruccin la ejecuta perfectamente, pero al llegar a la segunda se produce unaArithmeticException (excepcin de la claseArithmeticException) y se detiene la ejecucin delprogramayaqueestamosdividiendounnmeroentre0.
PorsuerteJavanospermitehaceruncontroldelasexcepcionesparaquenuestroprogramano se pare inesperadamente y aunque se produzca una excepcin, nuestro programa siga suejecucin.Paraellotenemoslaestructuratrycatchfinallyquelamostramosacontinuacin:
try{
//Instruccionescuandonohayunaexcepcin
}catch(TypeExceptionex){
//Instruccionescuandoseproduceunaexcepcion
}finally{
//Instrucionesqueseejecutan,tantosihaycomosinohayexcepciones
}
Respecto a la estructura try catch finally, se ha de decir que primero se ejecuta el
-
22/3/2015 Excepciones(Exception)enJava,conejemplosJarroba
data:text/htmlcharset=utf8,%3Ch1%20class%3D%22textcenter%22%20style%3D%22boxsizing%3A%20borderbox%3B%20margin%3A%200px%200 3/4
bloquetry,siseproduceunaexcepcinseejecutaelbloquecatchyporltimoelbloquefinally.Enestaestructurasepuedeomitirelbloquecatchoelbloquefinally,peronoambos.
Sabiendoestaestructura,podemosreescribirnuestroprogramaparaqueseejecutenlastresinstruccionesaunqueseproduzcaunaexcepcin.Previamentedebemosdesabercualvaaserlaclasede laexcepcinquepuedeaparecerqueseria laArithmeticExceptionparadefinirlaen laparte del catch. Nuestro programa quedara de la siguiente forma y se ejecutara sin problemaobteniendotambinlainformacindelaexcepcin:
ComovemoscapturamoslaexcepcinenunobjetoexdelaclaseArithmeticExceptionypodemosobtener elmensaje de error que nos da la excepcin.Vemos tambin queel programaterminasuejecucinaunquesehayaproducidounaexcepcin.
Dentrodeunamismaestructurapodemosdefinirtodaslasexcepcionesquequeramos.Enelcasoanterior hemosdefinido solo la excepcin ArithmeticException peropor ejemplo, podemosdefinir tambin la excepcin NullPointerException, por si nos viene un valor a null al hacer ladivisin:
-
22/3/2015 Excepciones(Exception)enJava,conejemplosJarroba
data:text/htmlcharset=utf8,%3Ch1%20class%3D%22textcenter%22%20style%3D%22boxsizing%3A%20borderbox%3B%20margin%3A%200px%200 4/4
Enresumen,hemospuestoenestaentradaunejemplomuysencilloparacontrolarunpardeexcepcionesbastanteobviascomoladivisinentre 0yun null,queperfectamente lopodramoshaber controlado con una sentencia de control if mirando el contenido de los atributos, pero lafinalidaddeestaentradaera ver comocontrolar lasexcepciones con laestructura try catchfinally,quesilosabemosutilizarnuestroprogramadeberseguirfuncionandoaunqueseproduzcanexcepciones.Decir tambinqueescasi imposibleaprenderse todas lasexcepcionesquehayenJava(asquenoospongisaempollarlasunaaunaporqueigualnoutilizareisniel10%delasquehay)yaqueestas las irisaprendiendosegnos lasvayisencontrandoenvuestrosdesarrollos.Estasqueoshemosmostradossonbastantecomunesaligualquelasqueospodisencontrarconeltratamientodeficheros,dearrays,etc.