Excepciones (Exception) en Java, Con Ejemplos - Jarroba

4
Excepciones (Exception) en Java, con ejemplos En Java los errores en tiempo de ejecución (cuando se esta 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 división entre cero, cuando un objeto es ‘null’ y no puede serlo, cuando no se abre correctamente un fichero, etc. Cuando se produce una excepción se muestra en la pantalla un mensaje de error y finaliza la ejecución del programa. En Java (al igual que en otros lenguajes de programación), existen mucho tipos de excepciones y enumerar cada uno de ellos seria casi una labor infinita. En lo referente a las excepciones hay que decir que se aprenden a base experiencia, de encontrarte con ellas y de saber solucionarlas. Cuando en Java se produce una excepción se crear un objeto de una determina clase (dependiendo del tipo de error que se haya producido), que mantendrá la información sobre el error producido y nos proporcionará los métodos necesarios para obtener dicha información. Estas clases tienen como clase padre la clase Throwable, por tanto se mantiene una jerarquía en las excepciones. A continuación mostramos algunas de las clases para que nos hagamos una idea de la jerarquía que siguen las excepciones, pero existen muchísimas más excepciones que las que mostramos: A continuación vamos a mostrar un ejemplo de como al hacer una división entre cero, se produce una excepción. Veamos la siguiente imagen en el que podemos ver un fragmento de código y el resultado de la ejecución del código:

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.