2014-09-02 4 views
0

J'essaie de développer sous Android. Maintenant, j'essaie d'utiliser le réseau.Exception n'est pas levée

J'ai la « classe de manager »

private String makeQuery(String string){ 
    Log.d("makeQuery", "in"); 
    try{ 
     NetTask a = new NetTask(server_url); 
    }catch(IOException e){ 
     Log.d("makeQuery", "exception"); 
    } 
    Log.d("makeQuery", "out"); 
    return "string"; 
} 

Il a la méthode pour les requêtes à mon propre serveur API via HTTP. Il utilise l'objet NetTask, l'héritage NetTask AsyncTask

public class NetTask extends AsyncTask<String, Void, Void> { 

HttpURLConnection connection; 

public NetTask(URL server) throws IOException{ 
    Log.d("NetTask", "Create"); 
    connection = (HttpURLConnection)server.openConnection(); 
    connection.setReadTimeout(10000); 
    connection.setConnectTimeout(15000); 
    connection.setRequestMethod("GET"); 
    connection.setDoInput(true); 
    connection.setDoOutput(true); 
    Log.d("NetTask", "Connect"); 
    connection.connect(); 
    Log.d("NetTask", "Response"); 
    int response = connection.getResponseCode(); 
    Log.d("NetTask", "The response is: " + response); 
} 

Dans mon cas, je reçois ouvre une session:

[makeQuery]

  • dans

[NetTask]

  • Créer
  • Connect

Alors, pourquoi la ligne Log.d ("makeQuery", "out"); n'est pas joignable?

+0

À utiliser après capture. L'exception devrait être enregistrée bien. – icbytes

+1

peut-être qu'il jette une autre exception? –

+0

Oui, vous avez raison. Il lance quelque chose d'autre, j'utilise Exception au lieu de IOException et ça marche. Merci. – chubakur

Répondre

1

Pourquoi Log.d("makeQuery", "out"); est inaccessible?

try{ 
     NetTask a = new NetTask(server_url); 
    }catch(IOException e){ 
     Log.d("makeQuery", "exception"); 
    } 

La raison en est que la classe NetTask déclenche un autre type d'exception.

vous changerez à

}catch(Exception e){ 
     Log.d("makeQuery", "exception"); 
    } 

mais la bonne pratique dit Intercepter l'exception correcte, le commentaire de gestion des exceptions et regardez dans votre LogCat pour le type d'exception.

Questions connexes