SlideShare une entreprise Scribd logo
1  sur  5
Télécharger pour lire hors ligne
TIPOS DE EXCEPCIONES
Existen varios tipos fundamentales de excepciones:




Error: Excepciones que indican problemas muy graves, que suelen ser no recuperables y no
deben casi nunca ser capturadas.
Exception: Excepciones no definitivas, pero que se detectan fuera del tiempo de ejecución.
RuntimeException: Excepciones que se dan durante la ejecución del programa.

Todas las excepciones tienen como clase base la clase Throwable, que está incluida en el paquete
java.lang, y sus métodos son:







Trowable( String mensaje ); Constructor. La cadena es opcional
Throwable fillInStackTrace(); Llena la pila de traza de ejecución.
String getLocalizedMessage(); Crea una descripción local de este objeto.
String getMessage(); Devuelve la cadena de error del objeto.
void printStackTrace( PrintStream_o_PrintWriter s ); Imprime este objeto y su traza en el flujo
del parámetro s, o en la salida estándar (por defecto).
String toString; Devuelve una breve descripción del objeto.

La superclase de todas las excepciones es la clase Throwable. Sólo las instancias de esta clase o
alguna de sus subclases pueden ser utilizadas como excepciones. La clase Trowable tiene dos
clases derivadas: Error y Exception.
La clase Exception sirve como superclase para crear excepciones de propósito específico
(adaptadas a nuestras necesidades), por ejemplo, si estamos diseñando una clase que lee
secuencialmente bytes en una cinta digital de datos, podemos crear la excepción: FinDeCinta que
se produce cuando el dispositivo físico ha alcanzado el final de la cinta. Otro ejemplo podría ser la
implementación de una clase de envío de datos a un satélite no geoestacionario, donde convendría
incluir una excepción FueraDeCobertura que se produzca cuando el satélite se encuentre fuera del
alcance de nuestra antena parabólica. Un último ejemplo: si escribimos un driver de impresora
podemos crear una clase derivada de Exception para que nos avise de la situación excepcional
FinDePapel .
La clase Error sirve de superclase para una serie de clases derivadas ya definidas que nos informan
de situaciones anormales relacionadas con errores de muy difícil recuperación producidos en el
sistema.
Si existe excepción
....................
Numerador = .............
Denominador = ............
Resultado = Numerador / Denominador;
....................
System.out.println (“No se puede realizar la división”);
No es obligatorio tratar las excepciones derivadas de la clase Error, ya que en la ejecución de una
aplicación probablemente nunca se produzcan estas situaciones anormales, sin embargo, sí que es
obligatorio hacer un tratamiento explícito de las excepciones derivadas de la clase Exception (no
podemos ignorar la falta de cobertura de un satélite, el fin del papel en una impresora, el fin de datos
en una lectura secuencial, etc.). En una aplicación bien diseñada e implementada es muchísimo más
probable que se produzcan excepciones de tipo Exception que excepciones de tipo Error.
La clase Exception tiene un amplio número de clases derivadas proporcionadas por el SDK, por
ejemplo existen excepciones predefinidas para el uso de ficheros, de SQL, etc. De todas estas
subclases, RuntimeExeption tiene una característica propia: no es necesario realizar un tratamiento
explícito de estas excepciones (de todas las demás clases derivadas de Exception si es necesario).
Esto es debido a que, al igual que con las excepciones derivadas de Error, existen pocas
posibilidades de recuperar situaciones
Entre las clases derivadas de RuntimeException se encuentran: anómalas de este tipo.

El siguiente gráfico muestra las clases más importantes en el uso de excepciones y su jerarquía . En
las clases no sombreadas es obligatorio realizar un tratamiento explícito de las excepciones, en las
clases sombreadas no es necesario este tratamiento
En el apartado anterior adelantábamos el diseño básico del tratamiento de excepciones: separar el
código de los programas del código de control de situaciones excepcionales en los programas, y los
ilustrábamos gráficamente con el siguiente ejemplo:

El bloque superior representa el código del programa y se le denomina bloque de “intento” (try). Aquí
se introduce el código del programa susceptible de causar cierto tipo de excepciones. Las
instrucciones se incluyen en un bloque con la siguiente sintaxis:

try {
// instrucciones susceptibles de causar cierto tipo de excepciones
}
El bloque inferior contiene las instrucciones de control de situaciones excepcionales. La sintaxis es:
catch (TipoDeExcepcion Identificador) {
// instrucciones de control de situaciones excepcionales
}
Entre el bloque try y el bloque catch no puede haber ninguna instrucción. Ambos bloques se
encuentran ligados en ejecución.
El funcionamiento es el siguiente: se ejecutan las instrucciones del bloque try hasta que se produzca
la situación de excepción de tipo TipoDeExcepcion; nótese que, habitualmente, no se producirá la
excepción y se ejecutarán todas las instrucciones del bloque try. Si se da la excepción, se pasa a
ejecutar las instrucciones del bloque catch y, posteriormente, las instrucciones siguientes al bloque
catch. Si no se produce la excepción no se ejecutan las instrucciones del bloque catch. Gráficamente:

Contenu connexe

Tendances

Exceptions in Java
Exceptions in JavaExceptions in Java
Exceptions in JavaVadym Lotar
 
Exception handling in java
Exception handling in javaException handling in java
Exception handling in javaARAFAT ISLAM
 
C++ classes tutorials
C++ classes tutorialsC++ classes tutorials
C++ classes tutorialsFALLEE31188
 
Cuestionario
CuestionarioCuestionario
Cuestionariojpauly4
 
Herencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosHerencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosMario Villaseñor
 
Listas en prolog
Listas en prologListas en prolog
Listas en prologJeffoG92
 
Introduction to method overloading & method overriding in java hdm
Introduction to method overloading & method overriding  in java  hdmIntroduction to method overloading & method overriding  in java  hdm
Introduction to method overloading & method overriding in java hdmHarshal Misalkar
 
Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)Maria Garcia
 
9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetosClara Patricia Avella Ibañez
 
Java exception handling ppt
Java exception handling pptJava exception handling ppt
Java exception handling pptJavabynataraJ
 
Java interfaces & abstract classes
Java interfaces & abstract classesJava interfaces & abstract classes
Java interfaces & abstract classesShreyans Pathak
 
Embedded SW Interview Questions
Embedded SW Interview Questions Embedded SW Interview Questions
Embedded SW Interview Questions PiTechnologies
 
Exception handling in java
Exception handling in javaException handling in java
Exception handling in javaPratik Soares
 

Tendances (20)

Exceptions in Java
Exceptions in JavaExceptions in Java
Exceptions in Java
 
Exception handling in java
Exception handling in javaException handling in java
Exception handling in java
 
C++ classes tutorials
C++ classes tutorialsC++ classes tutorials
C++ classes tutorials
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 
Java programs
Java programsJava programs
Java programs
 
Greenfoot 3
Greenfoot 3Greenfoot 3
Greenfoot 3
 
Exception handling in Java
Exception handling in JavaException handling in Java
Exception handling in Java
 
Herencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosHerencia - Programación Orientada a Objetos
Herencia - Programación Orientada a Objetos
 
Listas en prolog
Listas en prologListas en prolog
Listas en prolog
 
Exception Handling in Java
Exception Handling in JavaException Handling in Java
Exception Handling in Java
 
Introduction to method overloading & method overriding in java hdm
Introduction to method overloading & method overriding  in java  hdmIntroduction to method overloading & method overriding  in java  hdm
Introduction to method overloading & method overriding in java hdm
 
Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)
 
Classes objects in java
Classes objects in javaClasses objects in java
Classes objects in java
 
9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos
 
Java String Handling
Java String HandlingJava String Handling
Java String Handling
 
Java exception handling ppt
Java exception handling pptJava exception handling ppt
Java exception handling ppt
 
Exception handling
Exception handlingException handling
Exception handling
 
Java interfaces & abstract classes
Java interfaces & abstract classesJava interfaces & abstract classes
Java interfaces & abstract classes
 
Embedded SW Interview Questions
Embedded SW Interview Questions Embedded SW Interview Questions
Embedded SW Interview Questions
 
Exception handling in java
Exception handling in javaException handling in java
Exception handling in java
 

Similaire à Tipos de excepciones

Similaire à Tipos de excepciones (20)

Mas sobre excepciones
Mas sobre excepcionesMas sobre excepciones
Mas sobre excepciones
 
Lab excepciones
Lab excepcionesLab excepciones
Lab excepciones
 
Las excepciones standar
Las excepciones standarLas excepciones standar
Las excepciones standar
 
3...3 manejo de excepciones y la clase string
3...3 manejo de excepciones y la clase string3...3 manejo de excepciones y la clase string
3...3 manejo de excepciones y la clase string
 
3...3 manejo de excepciones y la clase string
3...3 manejo de excepciones y la clase string3...3 manejo de excepciones y la clase string
3...3 manejo de excepciones y la clase string
 
Resumen claudia u5
Resumen claudia u5Resumen claudia u5
Resumen claudia u5
 
Resumen
ResumenResumen
Resumen
 
Tema 4 excepciones por gio
Tema 4   excepciones por gioTema 4   excepciones por gio
Tema 4 excepciones por gio
 
excepciones_java en www.fiec.espol.edu.ec
excepciones_java  en www.fiec.espol.edu.ecexcepciones_java  en www.fiec.espol.edu.ec
excepciones_java en www.fiec.espol.edu.ec
 
Java excepciones
Java excepcionesJava excepciones
Java excepciones
 
Introducción
IntroducciónIntroducción
Introducción
 
Java5
Java5Java5
Java5
 
Try catch
Try catchTry catch
Try catch
 
Programación Orientada a Objetos - Unidad 5 Excepciones
Programación Orientada a Objetos - Unidad 5 ExcepcionesProgramación Orientada a Objetos - Unidad 5 Excepciones
Programación Orientada a Objetos - Unidad 5 Excepciones
 
6 excepciones
6 excepciones6 excepciones
6 excepciones
 
Clase string y manejo de excepciones
Clase string y manejo de excepcionesClase string y manejo de excepciones
Clase string y manejo de excepciones
 
Capitulo II
Capitulo IICapitulo II
Capitulo II
 
Guia demanejodeexcepcionesaserciones
Guia demanejodeexcepcionesasercionesGuia demanejodeexcepcionesaserciones
Guia demanejodeexcepcionesaserciones
 
Excepciones
ExcepcionesExcepciones
Excepciones
 
Manejo de excepciones en vb
Manejo de excepciones en vbManejo de excepciones en vb
Manejo de excepciones en vb
 

Plus de Manuel Alejandro Hernandez Sanchez

Plus de Manuel Alejandro Hernandez Sanchez (20)

Serialización personalizada
Serialización personalizadaSerialización personalizada
Serialización personalizada
 
Ejemplo
EjemploEjemplo
Ejemplo
 
Entrada
EntradaEntrada
Entrada
 
Ejemplo
EjemploEjemplo
Ejemplo
 
Herencia
HerenciaHerencia
Herencia
 
Tipo estático y tipo dinámico
Tipo estático y tipo dinámicoTipo estático y tipo dinámico
Tipo estático y tipo dinámico
 
Introducción
IntroducciónIntroducción
Introducción
 
Uso de polimorfismo
Uso de polimorfismoUso de polimorfismo
Uso de polimorfismo
 
Enlace dinámico
Enlace dinámicoEnlace dinámico
Enlace dinámico
 
Clase base
Clase baseClase base
Clase base
 
Por qué java no soporta la sobre carga de operadores
Por qué java no soporta la sobre carga de operadoresPor qué java no soporta la sobre carga de operadores
Por qué java no soporta la sobre carga de operadores
 
Sobrecarga de constructores
Sobrecarga de constructoresSobrecarga de constructores
Sobrecarga de constructores
 
Recolección de basura
Recolección de basuraRecolección de basura
Recolección de basura
 
Retorno de valores
Retorno de valoresRetorno de valores
Retorno de valores
 
Metodos de mensajes
Metodos de mensajesMetodos de mensajes
Metodos de mensajes
 
La destrucción del objeto
La destrucción del objetoLa destrucción del objeto
La destrucción del objeto
 
Acceso al objeto
Acceso al objetoAcceso al objeto
Acceso al objeto
 
Agregar un metodo que toma parametros
Agregar un metodo que toma parametrosAgregar un metodo que toma parametros
Agregar un metodo que toma parametros
 
Asignación de variables de referencia de objeto
Asignación de variables de referencia de objetoAsignación de variables de referencia de objeto
Asignación de variables de referencia de objeto
 
Una clase simple.
Una clase simple. Una clase simple.
Una clase simple.
 

Tipos de excepciones

  • 1. TIPOS DE EXCEPCIONES Existen varios tipos fundamentales de excepciones:    Error: Excepciones que indican problemas muy graves, que suelen ser no recuperables y no deben casi nunca ser capturadas. Exception: Excepciones no definitivas, pero que se detectan fuera del tiempo de ejecución. RuntimeException: Excepciones que se dan durante la ejecución del programa. Todas las excepciones tienen como clase base la clase Throwable, que está incluida en el paquete java.lang, y sus métodos son:       Trowable( String mensaje ); Constructor. La cadena es opcional Throwable fillInStackTrace(); Llena la pila de traza de ejecución. String getLocalizedMessage(); Crea una descripción local de este objeto. String getMessage(); Devuelve la cadena de error del objeto. void printStackTrace( PrintStream_o_PrintWriter s ); Imprime este objeto y su traza en el flujo del parámetro s, o en la salida estándar (por defecto). String toString; Devuelve una breve descripción del objeto. La superclase de todas las excepciones es la clase Throwable. Sólo las instancias de esta clase o alguna de sus subclases pueden ser utilizadas como excepciones. La clase Trowable tiene dos clases derivadas: Error y Exception. La clase Exception sirve como superclase para crear excepciones de propósito específico (adaptadas a nuestras necesidades), por ejemplo, si estamos diseñando una clase que lee secuencialmente bytes en una cinta digital de datos, podemos crear la excepción: FinDeCinta que se produce cuando el dispositivo físico ha alcanzado el final de la cinta. Otro ejemplo podría ser la implementación de una clase de envío de datos a un satélite no geoestacionario, donde convendría incluir una excepción FueraDeCobertura que se produzca cuando el satélite se encuentre fuera del alcance de nuestra antena parabólica. Un último ejemplo: si escribimos un driver de impresora podemos crear una clase derivada de Exception para que nos avise de la situación excepcional FinDePapel . La clase Error sirve de superclase para una serie de clases derivadas ya definidas que nos informan de situaciones anormales relacionadas con errores de muy difícil recuperación producidos en el sistema.
  • 2.
  • 3. Si existe excepción .................... Numerador = ............. Denominador = ............ Resultado = Numerador / Denominador; .................... System.out.println (“No se puede realizar la división”); No es obligatorio tratar las excepciones derivadas de la clase Error, ya que en la ejecución de una aplicación probablemente nunca se produzcan estas situaciones anormales, sin embargo, sí que es obligatorio hacer un tratamiento explícito de las excepciones derivadas de la clase Exception (no podemos ignorar la falta de cobertura de un satélite, el fin del papel en una impresora, el fin de datos en una lectura secuencial, etc.). En una aplicación bien diseñada e implementada es muchísimo más probable que se produzcan excepciones de tipo Exception que excepciones de tipo Error. La clase Exception tiene un amplio número de clases derivadas proporcionadas por el SDK, por ejemplo existen excepciones predefinidas para el uso de ficheros, de SQL, etc. De todas estas subclases, RuntimeExeption tiene una característica propia: no es necesario realizar un tratamiento explícito de estas excepciones (de todas las demás clases derivadas de Exception si es necesario). Esto es debido a que, al igual que con las excepciones derivadas de Error, existen pocas posibilidades de recuperar situaciones Entre las clases derivadas de RuntimeException se encuentran: anómalas de este tipo. El siguiente gráfico muestra las clases más importantes en el uso de excepciones y su jerarquía . En las clases no sombreadas es obligatorio realizar un tratamiento explícito de las excepciones, en las clases sombreadas no es necesario este tratamiento
  • 4. En el apartado anterior adelantábamos el diseño básico del tratamiento de excepciones: separar el código de los programas del código de control de situaciones excepcionales en los programas, y los ilustrábamos gráficamente con el siguiente ejemplo: El bloque superior representa el código del programa y se le denomina bloque de “intento” (try). Aquí se introduce el código del programa susceptible de causar cierto tipo de excepciones. Las instrucciones se incluyen en un bloque con la siguiente sintaxis: try { // instrucciones susceptibles de causar cierto tipo de excepciones } El bloque inferior contiene las instrucciones de control de situaciones excepcionales. La sintaxis es: catch (TipoDeExcepcion Identificador) { // instrucciones de control de situaciones excepcionales }
  • 5. Entre el bloque try y el bloque catch no puede haber ninguna instrucción. Ambos bloques se encuentran ligados en ejecución. El funcionamiento es el siguiente: se ejecutan las instrucciones del bloque try hasta que se produzca la situación de excepción de tipo TipoDeExcepcion; nótese que, habitualmente, no se producirá la excepción y se ejecutarán todas las instrucciones del bloque try. Si se da la excepción, se pasa a ejecutar las instrucciones del bloque catch y, posteriormente, las instrucciones siguientes al bloque catch. Si no se produce la excepción no se ejecutan las instrucciones del bloque catch. Gráficamente: