Try catch et return

Résolu
louisgautier Messages postés 1719 Date d'inscription   Statut Membre Dernière intervention   -  
louisgautier Messages postés 1719 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je ne suis pas un expert en Java, et le try catch est clairement pour moi, assez obscure !
J'ai crée un Thread pour récuper des données sur le wab (avec un api)
protected String doInBackground(String...args){
         try{
//t est crée plus haut par le constructeur Series t; tvdb est crée plus haut aussi c'est mon appel de l'api
            t = tvdb.getSeries("73739", "fr");
            if (t != null) {
                String titre = t.getSeriesName();
//je souhaite récuper le titre de la serie qui porte l'id "73739"
            }
            else{
                //on verra plus tard
            }
        }
        catch (TvDbException e){
            e.printStackTrace();
        }

//et le fameux return de ma fonction doInBackground, dans l'idéal j'aimerais retourner t
return titre;

Sauf que voilà, j'ai très vite comprit quetous ce que se passe dans le try est temporaire et donc le return titre est null.
Comment je peut procéder ?
Merci !

1 réponse

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Bonjour,

    Le comportement d'un try/catch est un peu similaire à celui d'un if/else.

    protected String doInBackground(String...args){
        try {
            // une action normale qui renvoie un résultat
            return resultatNormal;
        }
        catch (AnException e){
            // opérations à faire en cas d'erreur
            return resultatException;
        }
        finally {
            // opérations à faire après le return (normal ou erreur)
        }
    }
    0
    1. louisgautier Messages postés 1719 Date d'inscription   Statut Membre Dernière intervention   69
       
      Bonsoir,
      Merci de ta réponse !
      Mais alors pourquoi dans mon cas je n'arrive pas a retourner "titre" ?
      Je cherchais sur le web, et j'ai pas quelque chose a faire dans le onPostExecute ?
      0
    2. KX Messages postés 19031 Statut Modérateur 3 020
       
      pourquoi dans mon cas je n'arrive pas a retourner "titre" ?
      Je ne sais pas, dans ton code je ne vois aucun return... nul part !

      j'ai pas quelque chose a faire dans le onPostExecute ?
      Tu peux aussi, cela dépend de ton besoin réel; mais ça n'a rien à voir avec le mécanisme de try/catch ou de return.
      0
    3. louisgautier Messages postés 1719 Date d'inscription   Statut Membre Dernière intervention   69
       
      Bon du coup j'ai réussit a faire autrement, avec le onPostExecute, il me retourne ce que j'ai besoin donc voilà.
      Merci de ton aide
      0