Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 23/02/15, 17:28:07
Array

[xs_avatar]
WHK WHK no está en línea
Usuario poco activo
 
Fecha de registro: feb 2015
Mensajes: 11
Tu operador: Movistar

Mejores prácticas para el uso de try y catch

Hola, una pregunta, digamos que tengo una clase la cual tiene 5 funciones en la cual cada función trae llamadas a funciones nativas de Android para manipular archivos, bases de datos, etc.

La función que manipula base de datos trae una función que obligadamente debo encerrar dentro de un try catch, cuando el código cae dentro de un catch que es lo mejor? utilizar un control propio de errores para comunicar a la clase que hubo un error? hacer que la misma función ejecute un throw?

Suponiendo que lo óptimo es que mi función ejecute un throw, como puedo ejecutarlo desde la misma función para que la clase haga el control y no la función?

Por ejemplo, tengo la clase de datos de personas y cuando obtiene los datos desde internet vía json es necesario encapsular dentro de un try catch, como puedo hacer que ahora la función ejecute un throw para que la clase controle el problema? ya que la función de json me obliga a encerrar el código dentro del try catch y dentro del catch no puedo ejecutar un new throw.

Por ejemplo:

Código:
public void demo() throws Exception
{
    try{
      // ...
      String nombre = json_object.getString("nombre");

   }catch(Exception e){
      // ???
   }
}
La idea es que desde la clase principal pueda decir por ejemjplo:

Código:
try{
   demo();
}catch(Exception e){
   // Toast con el mensaje de error e.getessage...
}
Responder Con Cita


  #2  
Viejo 23/02/15, 18:27:43
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -

Si el método lo declaras como "throws Exception" ya no es necesario que hagas un try/catch dentro del método para capturar posibles excepciones pues, sea del tipo que sea (todas heredan de Exception), se propagará automáticamente en caso de lanzarse.

Dónde es mejor tratar una excepción depende de cómo tengas estructurado el programa. Lo importante es que se entere quien se tenga que enterar, y que no se entere al que le da igual.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
  #3  
Viejo 23/02/15, 19:20:54
Array

[xs_avatar]
WHK WHK no está en línea
Usuario poco activo
 
Fecha de registro: feb 2015
Mensajes: 11
Tu operador: Movistar

Hola gracias, lo hice declarando la función como throws Exception pero igual el android studio me marca de rojo la función jsonObject.getInt() porque no está encerrado bajo ningún try catch y no me deja compilar, lo normal sería que quede sin try catch para que la excepción viaje a través de la función.


Última edición por WHK Día 23/02/15 a las 19:24:44.
Responder Con Cita
  #4  
Viejo 23/02/15, 19:30:06
Array

[xs_avatar]
WHK WHK no está en línea
Usuario poco activo
 
Fecha de registro: feb 2015
Mensajes: 11
Tu operador: Movistar

Creo que ya me di cuenta del problema, es porque estoy llamando a un thron dentro de la función del runnable y no de la función principal :p

El tema es... como hago que el thrown llegue hasta la función superior? ya que al runnable no pude establecer el throws Exception delante de la función.
Responder Con Cita
  #5  
Viejo 24/02/15, 06:41:56
Array

[xs_avatar]
Braaank Braaank no está en línea
Usuario muy activo
· Votos compra/venta: (2)
 
Fecha de registro: ago 2012
Localización: Madrid
Mensajes: 1,149
Modelo de smartphone: One Plus 3T, iPad Air 32 GB
Tu operador: Orange
No entiendo muy bien que es lo que intentas conseguir, pero efectivamente en el run no puedes ponerle un throws debido a que no está especificado así en la interfaz. Yo pondría un try/catch.
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android

Herramientas


Hora actual: 19:12:31 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /