Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/02/2012, 04:06
chcma
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Codigo limpio - Poner Try Catch en lugar adecuado.

Buenos días desde España foreros !!!

Vereis, estoy empezando con esto de Android, y actualmente tengo una clase la cual hace una llamada a un WebService y recibe datos (Aqui os preguntaré otro día, como poder programar un Evento para usar desde la UI, jeje)

Bueno, la cuestión es que todo va perfectamente, desde la UI, me he creado un metodo que engloba una Thread, que a su vez engloba un Handler para procesar mensajes a la UI. Va todo sobre ruedas.

Sin embargo... quería meter una captura de Excepción en esté método para que me lance un AlertDialog, indicando que algo hay ido mal (Por ejemplo, si el webservice está caido, o si el usuario no tiene internet, o cualquier otra cosa)

El método que tengo es el siguiente:
Código:
    private Handler handler;
    public void StartLogin(final String loginName, final String password)
    {
    	
    	ProgressBarControl().setVisibility(View.VISIBLE);
    	
    	Runnable runnable = new Runnable()
    	{

			@Override
			public void run() 
			{

	    		WebServiceManager objService = new WebServiceManager();
	    		
	    		final String resultado = objService.StartLogin(loginName, password);	    		
	    		
	    		handler.post(new Runnable(){

					@Override
					public void run()
					{
						
						ProgressBarControl().setVisibility(View.INVISIBLE);
						LblErrorControl().setText(resultado);
					}	    			
	    		});
			}    	
    	};
    	
    	new Thread(runnable).start();
    }
Bien... debería meter un try{}catch{} en cada métod Run() ??? O podría ahorrarme tanto código y meter un try catch por ejemplo, en el evento del botón que llame al método??? Eso serviria o por ejecutarse todo en una hebra, si hay una excepción ahí dentro, no es capturable desde "fuera" ???

Por ejemplo... esto valdría ??
Código:

    	try 
    	{
    		
    		StartLogin(TxtUserControl().getText().toString(), 
    				   TxtPasswordControl().getText().toString());
		} 
    	catch (Exception ex) 
		{

			new AlertDialog.Builder(this).setTitle("Argh").setMessage(ex.getMessage()).setNeutralButton("OK", null).show();
		}

En fin... es una tontería, pero espero puedan ayudarme... Desde ya, gracias.
__________________
Charlie.