Foros del Web » Programación para mayores de 30 ;) » Java »

Ayuda, declaracion de excepciones en el metodo update de la clase Observer

Estas en el tema de Ayuda, declaracion de excepciones en el metodo update de la clase Observer en el foro de Java en Foros del Web. Hola, tengo un problemilla, con la declaracion de excepciones de una clase que implementa la interfaz Observer. Para la realizacion de esta clase llamada Sesion, ...
  #1 (permalink)  
Antiguo 28/05/2007, 10:53
 
Fecha de Ingreso: mayo-2007
Mensajes: 222
Antigüedad: 17 años
Puntos: 0
Ayuda, declaracion de excepciones en el metodo update de la clase Observer

Hola, tengo un problemilla, con la declaracion de excepciones de una clase que implementa la interfaz Observer.

Para la realizacion de esta clase llamada Sesion, (sera una clase observadora) implemento la interfaz observer, que tiene a su vez un metodo, llamado update que hay que redefinir.

Una vez redefinido este metodo, quiero propagar las excepciones de 2 metodos que utiliza interiormente el metodo update.

El tema es que yo quiero hacer un throw de las excepciones de estos metodos, hacia la interfaz grafica que sera otra clase. Pero cuando en la cabecera del metodo pongo:

public void update(Observable pTablero ,Object pArg) throws ExcepcionPartidaNoAcabada,

el compilador me dice que:

update(java.util.Observable,java.lang.Object) in packBuscaminas.Sesion cannot implement update(java.util.Observable,java.lang.Object) in java.util.Observer; overridden method does not throw packBuscaminas.ExcepcionPartidaNoAcabada

public void update(Observable pTablero ,Object pArg) throws ExcepcionPartidaNoAcabada
1 error

Es decir no me deja propagarlo, y no se porque, (hay que decir que la clase Sesion es la mas alta dentro de la jerarquia, de clases que tengo). Solo me deja hacer los correspondientes try..catch en los metodos que utiliza el update, para tratar hay los posibles errores, pero en ningun momento me deja propagarlo con throw.

A lo mejor es no puedo propagarlo porque estoy en la clase mas alta, y el compilador no sabe entonces donde va tratarlo , pero me parece raro....

Alguien sabe a que se debe ese error y como puedo solucionarlo.

Saludos y perdon por el ladrillo.
  #2 (permalink)  
Antiguo 28/05/2007, 13:51
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Ayuda, declaracion de excepciones en el metodo update de la clase Observer

Una clase que implementa un metodo de una interfaz no puede lanzar más excepciones que las declaradas en la interfaz. Se pueden lanzar menos, pero más nunca.

Esto es debido a que el compilador ha de poder garantizar en tiempo de compilación las excepciones que se lanzan, y si te dejaran añadir más no podría hacerlo.

Así que:
.- Las tratas y no lanzas esas excepciones.
.- Las "enmascaras" con excepciones declaradas en la interfaz.
.- Modificas la interfaz para que te deje lanzar esas excepciones.

No hay más

S!
  #3 (permalink)  
Antiguo 30/05/2007, 15:54
 
Fecha de Ingreso: mayo-2007
Mensajes: 222
Antigüedad: 17 años
Puntos: 0
Re: Ayuda, declaracion de excepciones en el metodo update de la clase Observer

Cita:
Iniciado por GreenEyed Ver Mensaje
Una clase que implementa un metodo de una interfaz no puede lanzar más excepciones que las declaradas en la interfaz. Se pueden lanzar menos, pero más nunca.

Esto es debido a que el compilador ha de poder garantizar en tiempo de compilación las excepciones que se lanzan, y si te dejaran añadir más no podría hacerlo.

Así que:
.- Las tratas y no lanzas esas excepciones.
.- Las "enmascaras" con excepciones declaradas en la interfaz.
.- Modificas la interfaz para que te deje lanzar esas excepciones.

No hay más

S!

Gracias otra vez por la ayuda, me ha servido de mucho. ¡Que grande eres!

Un saludo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:02.