Excepciones (Exception) en Java, Con Ejemplos - Jarroba

Post on 02-Oct-2015

28 views 2 download

description

Excepciones (Exception) en Java

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.