Try catch et return

Résolu/Fermé
louisgautier Messages postés 1632 Date d'inscription lundi 27 septembre 2010 Statut Membre Dernière intervention 13 janvier 2017 - Modifié par KX le 24/06/2016 à 00:09
louisgautier Messages postés 1632 Date d'inscription lundi 27 septembre 2010 Statut Membre Dernière intervention 13 janvier 2017 - 24 juin 2016 à 11:49
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

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
24 juin 2016 à 00:15
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
louisgautier Messages postés 1632 Date d'inscription lundi 27 septembre 2010 Statut Membre Dernière intervention 13 janvier 2017 69
24 juin 2016 à 01:01
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
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
24 juin 2016 à 02:31
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
louisgautier Messages postés 1632 Date d'inscription lundi 27 septembre 2010 Statut Membre Dernière intervention 13 janvier 2017 69
24 juin 2016 à 11:49
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