1.
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:
Como vemos en nuestro programa tenemos 3
instrucciones. La primera debe de imprimir por pantalla el mensaje
“ANTES DE HACER LA DIVISIÓN”, la segunda debe de hacer la división y la
última debe de imprimir por pantalla el mensaje “DESPUES DE HACER LA
DIVISIÓN”. La primera instrucción la ejecuta perfectamente, pero al
llegar a la segunda se produce una “ArithmeticException”
(excepción de la clase ArithmeticException) y se detiene la ejecución
del programa ya que estamos dividiendo un número entre ‘0’.
Por suerte Java nos permite hacer un
control de las excepciones para que nuestro programa no se pare
inesperadamente y aunque se produzca una excepción, nuestro programa
siga su ejecución. Para ello tenemos la estructura “try – catch –
finally” que la mostramos a continuación:
try { // Instrucciones cuando no hay una excepción } catch (TypeException ex) { // Instrucciones cuando se produce una excepcion } finally { // Instruciones que se ejecutan, tanto si hay como sino hay excepciones }
Respecto a la estructura “try – catch –
finally”, se ha de decir que primero se ejecuta el bloque “try”, si se
produce una excepción se ejecuta el bloque “catch” y por último el
bloque “finally”. En esta estructura se puede omitir el bloque “catch” o
el bloque “finally”, pero no ambos.
Sabiendo esta estructura, podemos
reescribir nuestro programa para que se ejecuten las tres instrucciones
aunque se produzca una excepción. Previamente debemos de saber cual va a
ser la clase de la excepción que puede aparecer que seria la “ArithmeticException”
para definirla en la parte del “catch”. Nuestro programa quedaría de la
siguiente forma y se ejecutaría sin problema obteniendo también la
información de la excepción:
Como vemos capturamos la excepción en un
objeto “ex” de la clase “ArithmeticException” y podemos obtener el
mensaje de error que nos da la excepción. Vemos también que el programa
termina su ejecución aunque se haya producido una excepción.
Dentro de una misma estructura podemos
definir todas las excepciones que queramos. En el caso anterior hemos
definido solo la excepción “ArithmeticException”; pero por ejemplo,
podemos definir también la excepción “NullPointerException”, por si nos
viene un valor a ‘null’ al hacer la división:
2. Runtime exception:
- Microsoft.Office.Tools.CannotRemoveCustomizationException
- Microsoft.Office.Tools.ControlNameAlreadyExistsException
- Microsoft.Office.Tools.Excel.ListObjectNotDataBoundException
- Microsoft.Office.Tools.Excel.SetDataBindingFailedException
- Microsoft.Office.Tools.InvalidRangeException
- Microsoft.Office.Tools.OfficeXpsDocumentException
- Microsoft.Office.Tools.Outlook.ControlNotFoundException
- Microsoft.Office.Tools.Outlook.FormRegionStorageNullException
- Microsoft.Office.Tools.RangeNotOnWorksheetException
- Microsoft.VisualStudio.Tools.Applications.Runtime.CacheAlreadyLoadedException
- Microsoft.VisualStudio.Tools.Applications.Runtime.CachedDataCouldNotBeSerializedException
- Microsoft.VisualStudio.Tools.Applications.Runtime.CachedDataTypeMismatchException
- Microsoft.VisualStudio.Tools.Applications.Runtime.CannotCacheInNonStartupException
- Microsoft.VisualStudio.Tools.Applications.Runtime.CannotCreateCustomizationDomainException
- Microsoft.VisualStudio.Tools.Applications.Runtime.CannotCreateStartupObjectException
- Microsoft.VisualStudio.Tools.Applications.Runtime.CannotFindMemberException
- Microsoft.VisualStudio.Tools.Applications.Runtime.CannotFindObjectToFillException
- Microsoft.VisualStudio.Tools.Applications.Runtime.CannotFindStartupObjectAssemblyException
- Microsoft.VisualStudio.Tools.Applications.Runtime.CannotLoadManifestException
- Microsoft.VisualStudio.Tools.Applications.Runtime.CannotRetrieveAppInfoException
- Microsoft.VisualStudio.Tools.Applications.Runtime.CannotRetrieveCachedDataException
- Microsoft.VisualStudio.Tools.Applications.Runtime.ControlCouldNotBeInitializedException
- Microsoft.VisualStudio.Tools.Applications.Runtime.ControlNotFoundException
- Microsoft.VisualStudio.Tools.Applications.Runtime.DocumentAlreadyCustomizedException
- Microsoft.VisualStudio.Tools.Applications.Runtime.DocumentAlreadyLoadedException
- Microsoft.VisualStudio.Tools.Applications.Runtime.DocumentClosedException
- Microsoft.VisualStudio.Tools.Applications.Runtime.DocumentCustomizedWithPreviousRuntimeException
- Microsoft.VisualStudio.Tools.Applications.Runtime.DocumentNotCustomizedException
- Microsoft.VisualStudio.Tools.Applications.Runtime.DocumentNotLoadedException
- Microsoft.VisualStudio.Tools.Applications.Runtime.InvalidDeployManifestException
- Microsoft.VisualStudio.Tools.Applications.Runtime.InvalidManifestException
- Microsoft.VisualStudio.Tools.Applications.Runtime.InvalidNewApplicationManifestException
- Microsoft.VisualStudio.Tools.Applications.Runtime.ItemAlreadyInCacheException
- Microsoft.VisualStudio.Tools.Applications.Runtime.ItemNotInCacheException
- Microsoft.VisualStudio.Tools.Applications.Runtime.ManifestNotExecutedException
- Microsoft.VisualStudio.Tools.Applications.Runtime.MissingDataIdException
- Microsoft.VisualStudio.Tools.Applications.Runtime.MissingHostItemIdException
- Microsoft.VisualStudio.Tools.Applications.Runtime.MissingTypeException
- Microsoft.VisualStudio.Tools.Applications.Runtime.MultipleCachedDataCouldNotBeSerializedException
- Microsoft.VisualStudio.Tools.Applications.Runtime.NonCacheableTypeException
- Microsoft.VisualStudio.Tools.Applications.Runtime.NoStartupObjectsException
- Microsoft.VisualStudio.Tools.Applications.Runtime.NotAvailableOfflineException
- Microsoft.VisualStudio.Tools.Applications.Runtime.NotAvailableOnlineException
- Microsoft.VisualStudio.Tools.Applications.Runtime.UnknownCustomizationFileException
- Microsoft.VisualStudio.Tools.Applications.Runtime.UpdateFailedException
3.
No hay comentarios:
Publicar un comentario