Sunteți pe pagina 1din 20

INSTITUTO TECNOLGICO SUPERIOR

DE JESS CARRANZA
ING. EN SISTEMAS COMPUTACIONALES
PROGRAMACIN ORIENTADA A OBJETOS
UNIDAD V
EXCEPCIONES.

ZENAIDA DEL CARMEN SEBASTIAN SALAZAR

ING. CARMEN VALLADARES IXBA

GRUPO
202-B

Jess Carranza Veracruz a 23 de mayo del 2015

INDICE

Contenido
INTRODUCCIN................................................................................................... 3
5.1. DEFINICIN DE EXCEPCIONES.......................................................................4
5.2. TIPOS DE EXCEPCIONES............................................................................... 5
5.2. TIPOS DE EXCEPCIONES............................................................................... 7

INSTITUTO
TECNOLGICO
SUPERIOR DE JESS
CARRANZA

Estndar.........7
Personalizadas 7
Lanzamiento...................................................................................................... 7
Marcadas........................................................................................................... 8
Desmarcadas..................................................................................................... 8
5.3. PROPAGACIN DE EXCEPCIONES.................................................................9
5.4. GESTION DE EXCEPCIONES: MANEJO DE EXCEPCIONES, LANZAMIENTO DE
EXCEPCIONES................................................................................................... 12
5.5. CREACIN Y MANEJO DE EXCEPCIONES DEFINIDAS POR EL USUARIO.......16
CONCLUSIN..................................................................................................... 18
BIBLIOGRAFIAS................................................................................................. 19

INTRODUCCIN
Pues como vemos en cada unidad hay diferentes temas y todos son a tratar de
diferente maneras, y en esta ocasin se ver sobre las excepciones y sus tipos,
como podremos ver, todos los temas que se han visto ha sido sobre java.

PROGRAMACION ORIENTADA A OBJETOS

INSTITUTO
TECNOLGICO
SUPERIOR DE JESS
CARRANZA

Podemos
aprender como programas, tipos de lenguajes etc. Gracias a esta materia se han
visto cosas nuevas y tambin aprendidas.

5.1. DEFINICIN DE EXCEPCIONES


En Java una excepcin es un error o una condicin anormal que se ha producido
durante la ejecucin de un programa. Java tiene diferentes tipos de excepciones:
Pgina 3 de 20

PROGRAMACION ORIENTADA A OBJETOS

INSTITUTO
TECNOLGICO
SUPERIOR DE JESS
CARRANZA

excepciones

de

I/O, las excepciones en tiempo de ejecucin y las de su propia creacin. Durante


la compilacin solamente se detectan los errores de sintaxis, pero el manejo de
excepciones de Java permite el manipular los errores que ocurren en tiempo de
ejecucin, entre estas podemos mencionar las excepciones aritmticas (divisin
entre cero), excepciones de puntero (acceso a punteros NULL) y excepciones de
indexacin (acceso por encima o debajo de los lmites de un vector). Algunas
excepciones son fatales y causan el fin de la ejecucin del programa. En este caso
conviene terminar ordenadamente y enviar un mensaje explicando el tipo de error
que se ha producido. En otras situaciones, por ejemplo cuando no se encuentra un
archivo sobre el que se desea realizar una operacin, el programa puede dar al
usuario la oportunidad de corregir el error. Un buen programa debe manejar
correctamente la mayora de los errores que se puedan producir, Java proporciona
las siguientes herramientas para el manejo de excepciones: try, catch, throw,
throws y finally.

Pgina 4 de 20

PROGRAMACION ORIENTADA A OBJETOS

INSTITUTO
TECNOLGICO
SUPERIOR DE JESS
CARRANZA

5.2. TIPOS DE EXCEPCIONES.


En resumen las excepciones son generadas de tres formas diferentes.
1) La mquina Virtual de Java puede generar una excepcin como producto de un
error interno que est fuera de su control. Estas excepciones generalmente no
pueden ser manejadas por el programa.
2) Excepciones estndar: Son excepciones que deben ser manipuladas, se
producen cuando se ejecuta una divisin por cero o se trata de accesder a un
arreglo con un ndice fuera de lmites son generadas por errores en el cdigo del
programa.
3) El programador puede generar una excepcin manualmente utilizando la
estructura throw. Sin importar cmo se produjo la excepcin, se maneja de la
misma forma. Cuando se crea una nueva excepcin, derivando de una
clase Exception ya existente, se puede cambiar el mensaje que lleva asociado.
La cadena de texto puede ser recuperada a travs de un mtodo. Normalmente, el
texto del mensaje proporcionar informacin para resolver el problema o sugerir
una accin alternativa. Por ejemplo:

class SinGasolina extends Exception {


SinGasolina( String s ) {

// constructor

super( s );
}
....

Pgina 5 de 20

PROGRAMACION ORIENTADA A OBJETOS

INSTITUTO
TECNOLGICO
SUPERIOR DE JESS
CARRANZA

// Cuando se use, aparecer algo como esto


try {
if( j < 1 )
throw new SinGasolina( "Usando deposito de reserva" );
} catch( SinGasolina e ) {
System.out.println( o.getMessage() );
}

En Java los errores en tiempo de ejecucin (cuando se esta ejecutando el


programa) se denominan excepciones, y esto ocurre cuando se produce un error
en alguna de las instrucciones de nuestro programa, como por ejemplo cuando se
hace una divisin entre cero, cuando un objeto es null y no puede serlo, cuando
no se abre correctamente un fichero, etc. Cuando se produce una excepcin se
muestra en la pantalla un mensaje de error y finaliza la ejecucin del programa.
En Java (al igual que en otros lenguajes de programacin), 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 excepcin se crear un objeto de una determina
clase (dependiendo del tipo de error que se haya producido), que mantendr la
informacin sobre el error producido y nos proporcionar los mtodos necesarios
para obtener dicha informacin. Estas clases tienen como clase padre la clase
Throwable, por tanto se mantiene una jerarqua en las excepciones.
Pgina 6 de 20

PROGRAMACION ORIENTADA A OBJETOS

INSTITUTO
TECNOLGICO
SUPERIOR DE JESS
CARRANZA

5.2. TIPOS DE EXCEPCIONES


El lenguaje de programacin Java proporciona excepciones que permiten a los
programas tratar con eventos que no estn dentro de la ejecucin normal. Estas
excepciones pueden surgir en muchas situaciones, por ejemplo errores de entrada
y salida, que a veces ocurren si un programa intenta leer datos de una fuente
externa pero no puede encontrarla. Usando excepciones, los programadores
pueden crear aplicaciones Java que pueden tratar varias situaciones.

Estndar
El lenguaje Java proporciona un rango de tipos de excepcin estndar diseadas
para usarlas en distintas situaciones. En algunos casos, el propio Java lanza estas
excepciones, aunque puedes escoger lanzarlas manualmente con tu cdigo de
programacin si es lo adecuado. Los tipos de excepciones estndar en Java
extienden la clase Exception. Las clases de excepcin habituales incluyen
IOExceptions, que se lanza cuando las operaciones de entrada o salida fallan.

Personalizadas
Puedes crear tus propias clases de excepcin en Java si necesitas funcionalidad
especfica dentro de ellas. Puedes crear una clase que extienda la clase Exception
usando esta sintaxis: public class SpecialException extends Exception A menudo
no es necesario crear tus propias clases de excepcin, ya que el lenguaje Java
proporciona acceso a muchos objetos de excepcin de especialista de serie.

Lanzamiento
Si un programa Java encuentra determinados problemas, como intentar leer un
archivo que no se encuentra, el propio Java lanzar automticamente una
Pgina 7 de 20

PROGRAMACION ORIENTADA A OBJETOS

INSTITUTO
TECNOLGICO
SUPERIOR DE JESS
CARRANZA

excepcin.

En

estos casos, los desarrolladores slo tienen que tratar la excepcin Pero en otros
casos los programadores pueden querer lanzar una excepcin de forma explcita
dentro de un programa.
Por ejemplo, si creas una clase dentro de una aplicacin Java y quieres que los
parmetros del constructor cumplan determinados requisitos, puedes lanzar la
excepcin si no se cumplen. Para hacerlo, los programas pueden usar esta
sintaxis: throw new SpecialException();

Marcadas
En Java, las excepciones estn marcadas o desmarcadas. Las marcadas son ms
fciles de tratar mientras desarrollas una aplicacin en Java, en concreto si ests
codificando en un Entorno de Desarrollo Integrado. Esto se debe a que la mayora
de los IDE piden que repares las zonas de cdigo donde no has tratado las
excepciones marcadas. Por ejemplo, si programas en un IDE e incluyes una
seccin donde el cdigo lee de una fuente de datos externa, pero no proporcionas
bloques "try" y "catch" para tratar las excepciones, tu IDE puede no compilar el
programa hasta que lo hagas.

Desmarcadas
El cdigo Java que introduce la posibilidad de una excepcin desmarcada podr
compilarse y ejecutarse. Como desarrollador, seguramente slo descubrirs estas
excepciones en tiempo de ejecucin. Un ejemplo habitual de una excepcin
desmarcada es "ArrayIndexOutOfBoundsException", que ocurre cuando un
programa intenta leer una posicin de vector invlida. Estas excepciones suelen
ser el sntoma de errores lgicos, as que suelen brotar mientras pruebas y haces
depuracin.

Pgina 8 de 20

PROGRAMACION ORIENTADA A OBJETOS

INSTITUTO
TECNOLGICO
SUPERIOR DE JESS
CARRANZA

5.3. PROPAGACIN DE EXCEPCIONES.


La clusula catch comprueba los argumentos en el mismo orden en que
aparezcan en el programa. Si hay alguno que coincida, se ejecuta el bloque y
sigue el flujo de control por el bloque finally (si lo hay) y concluye el control de la
excepcin.
Si ninguna de las clusulas catch coincide con la excepcin que se ha producido,
entonces se ejecutar el cdigo de la clusula finally (en caso de que la haya). Lo
que ocurre en este caso, es exactamente lo mismo que si la sentencia que lanza
la excepcin no se encontrase encerrada en el bloque try.
El flujo de control abandona este mtodo y retorna prematuramente al mtodo que
lo llam. Si la llamada estaba dentro del mbito de una sentencia try, entonces se
vuelve a intentar el control de la excepcin, y as continuamente.
Veamos lo que sucede cuando una excepcin no es tratada en la rutina en donde
se produce. El sistema Java busca un bloque try..catch ms all de la llamada,
pero dentro del mtodo que lo trajo aqu. Si la excepcin se propaga de todas
formas hasta lo alto de la pila de llamadas sin encontrar un controlador especfico
para la excepcin, entonces la ejecucin se detendr dando un mensaje. Es decir,
podemos suponer que Java nos est proporcionando un bloque catch por defecto,
que imprime un mensaje de error y sale.
No hay ninguna sobrecarga en el sistema por incorporar sentencias try al cdigo.
La sobrecarga se produce cuando se genera la excepcin.

Pgina 9 de 20

PROGRAMACION ORIENTADA A OBJETOS

INSTITUTO
TECNOLGICO
SUPERIOR DE JESS
CARRANZA

Hemos dicho ya que un mtodo debe capturar las excepciones que genera, o en
todo caso, declararlas como parte de su llamada, indicando a todo el mundo que
es capaz de generar excepciones. Esto debe ser as para que cualquiera que
escriba una llamada a ese mtodo est avisado de que le puede llegar una
excepcin, en lugar del valor de retorno normal. Esto permite al programador que
llama a ese mtodo, elegir entre controlar la excepcin o propagarla hacia arriba
en la pila de llamadas. La siguiente lnea de cdigo muestra la forma general en
que un mtodo declara excepciones que se pueden propagar fuera de l:
tipo_de_retorno( parmetros ) throws e1,e2,e3 { }
Los nombres e1,e2,... deben ser nombres de excepciones, es decir, cualquier tipo
que sea asignable al tipo predefinido Throwable. Observar que, como en la
llamada al mtodo se especifica el tipo de retorno, se est especificando el tipo de
excepcin que puede generar (en lugar de un objeto exception).
He aqu un ejemplo, tomado del sistema Java de entrada/salida:
byte readByte() throws IOException;
short readShort() throws IOException;
char readChar() throws IOException;
void writeByte( int v ) throws IOException;
void writeShort( int v ) throws IOException;
void writeChar( int v ) throws IOException;
Pgina 10 de 20

PROGRAMACION ORIENTADA A OBJETOS

INSTITUTO
TECNOLGICO
SUPERIOR DE JESS
CARRANZA

Lo

ms

interesante aqu es que la rutina que lee un char, puede devolver un char; no el
entero que se requiere en C. C necesita que se devuelva un int, para poder pasar
cualquier valor a un char, y adems un valor extra (-1) para indicar que se ha
alcanzado el final del fichero. Algunas de las rutinas Java lanzan una excepcin
cuando se alcanza el fin del fichero.

Las instrucciones que tenemos dentro de un bloque

try a menudo contienen

llamadas a mtodos que a su vez pueden realizar llamadas a otros mtodos y as


sucesivamente. Cualquiera de los mtodos llamados puede provocar una
excepcin y cualquiera de los mtodos puede, o no, tratarla (con bloques catch).
Una excepcin no tratada en un bloque se propaga hacia el bloque llamante. Este
mecanismo de propagacin contina mientras no se trate la excepcin o se llegue
al mtodo de nivel superior. Si la excepcin no se trata en el mtodo de nivel
superior, se imprime un mensaje de error por consola.
Estado de una excepcin
Como hemos visto, todas las excepciones derivan de la clase Throwable y tienen
acceso a sus dos constructores y sus 7 mtodos. El estado de las instancias de
esta clase se compone de un String que sirve de mensaje indicando las
caractersticas de la excepcin y una pila de ejecucin que contiene la relacin de
mtodos que se encuentran en ejecucin en el momento en el que se produce la
excepcin.

Pgina 11 de 20

PROGRAMACION ORIENTADA A OBJETOS

INSTITUTO
TECNOLGICO
SUPERIOR DE JESS
CARRANZA

5.4. GESTION DE EXCEPCIONES: MANEJO DE EXCEPCIONES,


LANZAMIENTO DE EXCEPCIONES.
Lanzamiento de excepciones: throw - throws
Muchas veces el programador dentro de un determinado mtodo deber
comprobar si alguna condicin de excepcin se cumple, y si es as lanzarla. Para
ello se utilizan las palabras reservadas throw y throws.

Por una parte la excepcin se lanza mediante la sentencia throw:


if ( condicion_de_excepcion == true )
throw new miExcepcion();

Se puede observar que hemos creado un objeto de la clase miExcepcion, puesto


que las excepciones son objetos y por tanto debern ser instanciadas antes de ser
lanzadas.
Aquellos mtodos que pueden lanzar excepciones, deben cules son esas
excepciones en su declaracin. Para ello se utiliza la sentencia throws:
Pgina 12 de 20

PROGRAMACION ORIENTADA A OBJETOS

INSTITUTO
TECNOLGICO
SUPERIOR DE JESS
CARRANZA

tipo_devuelto miMetodoLanzador() throws miExcep1, miExcep2 {


// Codigo capaz de lanzar excepciones miExcep1 y miExcep2
}

Se puede observar que cuando se pueden lanzar en el mtodo ms de una


excepcin se deben indicar en sus declaraciones separadas por comas.

MANEJO DE EXCEPCIONES
El manejo de excepciones es una tcnica de programacin que permite al
programador controlar los errores ocasionados durante la ejecucin de un
programa informtico. Cuando ocurre cierto tipo de error, el sistema reacciona
ejecutando un fragmento de cdigo que resuelve la situacin, por ejemplo
retornando un mensaje de error o devolviendo un valor por defecto.
Una excepcin en trminos de lenguaje de programacin es la indicacin de un
problema que ocurre durante la ejecucin de un programa. Sin embargo, la
palabra excepcin se refiere a que este problema ocurre con poca frecuencia
generalmente cuando existe algn dato o instruccin que no se apega al
funcionamiento del programa por lo que se produce un error. El manejo de
excepciones permite al usuario crear aplicaciones tolerantes a fallas y robustos
(resistentes a errores) para controlar estas excepciones y que pueda seguir
ejecutando el programa sin verse afectado por el problema. En lenguaje java estas
excepciones pueden manejarse con las clases que extienden el paquete
Throwable de manera directa o indirecta, pero existen diversos tipos de
excepciones y formas para manejarlas.

Pgina 13 de 20

PROGRAMACION ORIENTADA A OBJETOS

INSTITUTO
TECNOLGICO
SUPERIOR DE JESS
CARRANZA

USO DEL MANEJO DE EXCEPCIONES


El manejo de excepciones ayuda al programador a trasladar el cdigo para
manejo de errores de la lnea principal de ejecucin, adems se puede elegir entre
manejar todas las excepciones, las de cierto tipo o de las de grupos relacionados,
esto hace que la probabilidad de pasar por alto los errores se reduzca y a la vez
hace los programas ms robustos. Pero es importante utilizar un lenguaje de
programacin que soporte este manejo, de lo contrario el procesamiento de
errores no estar incluido y har el programa ms vulnerable. Este manejo est
diseado para procesar errores que ocurren cuando se ejecuta una instruccin,
algunos ejemplos son: desbordamiento aritmtico, divisin entre cero, parmetros
invlidos de mtodo y asignacin fallida en la memoria. Sin embargo, no est
diseado para procesar problemas con eventos independientes al programa como
son pulsar una tecla o clic al mouse.

Las excepciones se dividen en verificadas y no verificadas. Es importante esta


divisin porque el compilador implementa requerimientos de atrapar o declarar
para las verificadas lo que har que se detecten las excepciones automticamente
Pgina 14 de 20

PROGRAMACION ORIENTADA A OBJETOS

INSTITUTO
TECNOLGICO
SUPERIOR DE JESS
CARRANZA

y de acuerdo al
lenguaje de programacin utilizado se utilizar un mtodo para corregirlas. Sin
embargo para las no verificadas se producir un error indicando que deben
atraparse y declararse. Por eso el programador debe pensar en los problemas que
pueden ocurrir cuando se llama a un mtodo y definir excepciones para verificarse
cuando sean importantes. Las clases de excepciones pueden derivarse de una
superclase comn, por lo que con un manejador para atrapar objetos de la
superclase, tambin se pueden atrapar todos los objetos de las subclases de esa
clase. Pero tambin, se pueden atrapar a cada uno de los tipos de las subclases
de manera individual si estas requieren ser procesadas diferente.

A cada clula se le conoce como compiladora de distintos.

LANZAMIENTO DE EXCEPCIONES
Para

crear

lanzar

una

excepcin

propia

tenemos

que

definir

la

clase ExcepcionIntervalo derivada de la clase base Exception.


public class ExcepcionIntervalo extends Exception {
public ExcepcionIntervalo(String msg) {
super(msg);
}
}

La definicin de la clase es muy simple. Se le pasa un string msg, que contiene un


mensaje, en el nico parmetro que tiene el constructor de la clase derivada y ste
se lo pasa a la clase base mediante super.
Para

crear

lanzar

una

excepcin

propia

tenemos

clase ExcepcionIntervalo derivada de la clase base Exception.

Pgina 15 de 20

que

definir

la

PROGRAMACION ORIENTADA A OBJETOS

INSTITUTO
TECNOLGICO
SUPERIOR DE JESS
CARRANZA

class

ExcepcionIntervalo

extends Exception {
public ExcepcionIntervalo(String msg) {
super(msg);
}
}

La definicin de la clase es muy simple. Se le pasa un string msg, que contiene un


mensaje, en el nico parmetro que tiene el constructor de la clase derivada y ste
se lo pasa a la clase base mediante sper.

5.5. CREACIN Y MANEJO DE EXCEPCIONES DEFINIDAS POR


EL USUARIO.
Las excepciones predefinidas cubren las situaciones de error ms habituales con
las que nos podemos encontrar, relacionadas con el propio lenguaje y el hardware.
Cuando se desarrollan aplicaciones existen otras situaciones de error de ms alto
nivel relacionadas con la funcionalidad de nuestros programas.
Imaginemos una aplicacin informtica que controla la utilizacin de los remontes
de una estacin de esqu: los pases de acceso a los remontes son personales e
intransferibles y dispondrn de un cdigo de barras que los identifica. Cada vez
que un usuario va a hacer uso de un remonte debe introducir su pase de acceso
en una mquina de validacin, que acciona un torno y devuelve el pase.
El sistema puede constar de un ordenador central al que le llegan telemticamente
los datos correspondientes a los cdigos de barras de los pases que en cada
Pgina 16 de 20

public

PROGRAMACION ORIENTADA A OBJETOS

INSTITUTO
TECNOLGICO
SUPERIOR DE JESS
CARRANZA

momento

se

estn introduciendo en cada mquina de validacin de cada remonte; si un cdigo


de barras est en regla, el ordenador enva una orden de liberar el torno para
permitir al usuario acceder al remonte.

El ordenador central habitualmente recibir cdigos correctos utilizados en


momentos adecuados, sin embargo, en ciertas ocasiones nos encontraremos con
situaciones anmalas:
1.-Cdigo de barras ilegible
2.-Cdigo de barras no vlido (por ejemplo correspondiente a un pase caducado)
3.-Cdigo de barras utilizado en otro remonte en un periodo de tiempo demasiado
breve
4.-etc.
DEFINICIN DE UNA EXCEPCIN DEFINIDA POR EL PROGRAMADOR.

Pgina 17 de 20

PROGRAMACION ORIENTADA A OBJETOS

INSTITUTO
TECNOLGICO
SUPERIOR DE JESS
CARRANZA

En programacin
orientada a objetos lo ms adecuado es que las excepciones sean objetos, por lo
que en Java definiremos las excepciones como clases. Nuestras clases de
excepcin, en general, heredarn de la clase Exception. En las clases que nos
creemos a partir de Exception, incluiremos al menos el constructor vaco y otro
que

contenga

un

String

como

argumento.

Este

String

se

inicializa

automticamente con el nombre de la clase; la inicializacin se realiza en la


superclase Throwable. El texto que pongamos al hacer uso del segundo
constructor se aadir al nombre de la clase insertado por la superclase.

CONCLUSIN.
En conclusin sobre este tema y en los que se vieron las unidades anteriores, es
que una persona solo sabe usar una computadora lo mas sencillo puede manejar
pero, no se trata de solo usar una computadora si no de saber darle uso como por
ejemplo y gracias a estos temas e investigaciones he podido encontrar diferentes
tipos de programaciones, algunas en java otras en c++, no solo hay un
programador que se va a utilizar existen varios, pero no todos son iguales hay
unos mas fciles de usar otros mas complejos en fin un sinfn de cosas, y la
conclusin en si fue que se puede programar gracias a estos atributos o mtodos
como se pueda llamar.
Pgina 18 de 20

PROGRAMACION ORIENTADA A OBJETOS

INSTITUTO
TECNOLGICO
SUPERIOR DE JESS
CARRANZA

BIBLIOGRAFIAS.
http://p-o-o-itsav.blogspot.mx/2012/02/55-creacion-y-manejo-de-excepciones.html
http://pooitsavlerdo.blogspot.mx/2012/05/55-creacion-y-manejo-deexcepciones.html
http://www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/excepciones/propias.ht
m
http://p-o-o-itsav.blogspot.mx/2012/02/54-gestion-de-excepciones.html

Pgina 19 de 20

PROGRAMACION ORIENTADA A OBJETOS

Pgina 20 de 20

INSTITUTO
TECNOLGICO
SUPERIOR DE JESS
CARRANZA

S-ar putea să vă placă și