IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

try/catch ne pas arrêter l'application


Sujet :

Android

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2012
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 124
    Points : 35
    Points
    35
    Par défaut try/catch ne pas arrêter l'application
    Bonjour,

    J'aimerais savoir dans un try catch nous avons la possibilité que l'application ne s’arrête pas malgré l’erreur, j'aimerais simplement afficher un Toast car au final la commande n'est pas hyper importante.


    je vous montre le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    try {
                objPostIdNum.execute(numTel, "xxxxxx").get(2000,TimeUnit.MILLISECONDS); //Stopper le Thread Main tant que l'on a pas la réponse (get)
            }
            catch (ExecutionException e) {
                e.printStackTrace();
            } catch (TimeoutException e) {
                e.printStackTrace();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
    Merci

  2. #2
    Membre actif Avatar de Altak
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 170
    Points : 245
    Points
    245
    Par défaut
    Bonjour,

    Je crois qu'on te l'a déjà dit mais c'est pas la bonne façon de procéder pour faire ce que tu veux faire...

    Dans tout les cas, avec ce code, ton application ne s’arrêtera pas si tu rencontre l'une des trois Exceptions que tu catch.
    En règle générale, les Exceptions font arrêter ton application si tu ne les catch pas donc si tu les catch, ton app ne s’arrête pas

    Mais du coup, si ta requête rencontre une autre erreur que les 3 que tu catch, ton application va s’arrêter...

    Renseigne toi sur les try/catch, je ne suis pas sur que tu ai compris le fonctionnement et regarde comment utiliser les requête asynchrone, c'est vraiment pas la bonne façon de procéder, ca va bloquer ton application jusqu’à ce que ton app reçoive la réponse...
    Imagine maintenant que ton utilisateur est en 3G ou en Edge? gros ping, avec un un transfert de donnée lent, tu bloque ton appli pendant plusieurs seconde et ton utilisateur reste coincer sans rien pouvoir faire. Tu admettra qu'il y a mieux comme comportement pour un appli :O


    GLHF

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2012
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 124
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par Altak Voir le message
    Bonjour,

    Je crois qu'on te l'a déjà dit mais c'est pas la bonne façon de procéder pour faire ce que tu veux faire...

    Dans tout les cas, avec ce code, ton application ne s’arrêtera pas si tu rencontre l'une des trois Exceptions que tu catch.
    En règle générale, les Exceptions font arrêter ton application si tu ne les catch pas donc si tu les catch, ton app ne s’arrête pas

    Mais du coup, si ta requête rencontre une autre erreur que les 3 que tu catch, ton application va s’arrêter...

    Renseigne toi sur les try/catch, je ne suis pas sur que tu ai compris le fonctionnement et regarde comment utiliser les requête asynchrone, c'est vraiment pas la bonne façon de procéder, ca va bloquer ton application jusqu’à ce que ton app reçoive la réponse...
    Imagine maintenant que ton utilisateur est en 3G ou en Edge? gros ping, avec un un transfert de donnée lent, tu bloque ton appli pendant plusieurs seconde et ton utilisateur reste coincer sans rien pouvoir faire. Tu admettra qu'il y a mieux comme comportement pour un appli :O


    GLHF
    oui on me l'a déja dit, mais pour moi sincérement c'est la meilleure solution j'ai besoin du resultat pour continuer..

    sinon pour try/catch il y a pas un truc du genre "pour toute erreur" ?

    Merci

  4. #4
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Citation Envoyé par mailoy Voir le message
    sinon pour try/catch il y a pas un truc du genre "pour toute erreur" ?
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    } catch (Exception e) {
                e.printStackTrace();
    }
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  5. #5
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    oui on me l'a déja dit, mais pour moi sincérement c'est la meilleure solution j'ai besoin du resultat pour continuer..

    Et alors ?

    C'est le principe de l'asynchrone....

    Le programme à besoin de faire zigouigoui et d'attendre la réponse... il lance une tâche asynchrone pour ça.
    La tâche asynchrone fait zigouigoui, quand elle a finit il déclenche un événement "toto".
    Le programme réagit à l'évenement "toto" pour faire turlututu avec le résultat de zigouigoui.

    Avec AsyncTask c'est encore plus simple puisque la gestion des évenements est directement cablée, et qu'il suffit de faire des appels de fonction.
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

Discussions similaires

  1. [Débutant] Ne pas répéter Try Catch
    Par Jah73 dans le forum VB.NET
    Réponses: 13
    Dernier message: 08/02/2013, 13h39
  2. Réponses: 6
    Dernier message: 27/10/2010, 14h06
  3. [SQL2005] TRY-CATCH ne passe pas le contrôle au CATCH ?
    Par elsuket dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 22/10/2008, 14h06
  4. Pourquoi un try catch ne marche-t-il pas ?!?
    Par noussibeau dans le forum VB.NET
    Réponses: 13
    Dernier message: 09/11/2007, 10h14
  5. Builder n'accepte pas try/catch/__finally
    Par Rodrigue dans le forum C++Builder
    Réponses: 3
    Dernier message: 18/04/2005, 13h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo