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

Python Discussion :

Pourquoi mon TRY..EXCEPT ne fonctionne pas ?


Sujet :

Python

  1. #1
    Membre éclairé
    Avatar de clavier12AZQSWX
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2009
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 414
    Points : 871
    Points
    871
    Par défaut Pourquoi mon TRY..EXCEPT ne fonctionne pas ?
    bonjour,

    dans mon code python (2.4.4), j'utilise SUDS pour faire appel à un webservice.

    J'ai mis cet appel dans une boucle TRY..EXCEPT si au cas où la transmission dure longtemps ou retourne un échec.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    try:
                                    print "1: juste avant req webservice"
    				nouveau = client.service.ReceptionInterventionsPrestees_ERROR(identifiant,date_recup)
    				print"2: juste apres si tout est OK"			
    				
    			except suds.WebFault, e:
    				print "retour erreur webservice=",e
    
    			print "3 : Juste apres envoi et reception voire erreur"
    en gras j'ai mis le code qui fait appel au webservice, j'ai volontairement changer le nom de la méthode pour créer une erreur.

    Mais voilà, le try..except ne fonctionne pas et le script s'arrête et ne continue pas :
    il ne vas pas dans le Except pour afficher le retour erreur.
    il ne va même pas en "print "3 : Juste apres envoi e" puisque l'erreur bloque tout et stop le script

    Pourquoi ?

    pourquoi la partie except ne se déclenche pas ?

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 781
    Points
    36 781
    Par défaut
    Citation Envoyé par Michael REMY Voir le message
    Mais voilà, le try..except ne fonctionne pas et le script s'arrête et ne continue pas (ne vas pas dans le try).
    S'il ne vas pas dans le try, aucune chance de passer dans l'except.
    Dans le cas contraire, on peut espérer que ça sorte un "timeout" qu'on pourrait attraper par un except.
    C'est un paramètre a passer a la construction du client modulo une version de SUDS plus moderne que celle de Python.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 301
    Points : 6 781
    Points
    6 781
    Par défaut
    Salut,

    Mais tu as tout de même une erreur, puisque tu dis que tu as altéré volontairement le nom de la méthode.

    Ton erreur n'est pas captée par le except parce que ce n'est pas une exception de type suds.WebFault
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    except suds.WebFault, e:
    rajoute un deuxième except juste après le premier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        except Exception as why:
            print why

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 781
    Points
    36 781
    Par défaut
    Si la méthode n'existe pas ça lève: suds.MethodNotFound: Method not found: 'Lists.ListsSoap.XXX'
    Ce qui n'est pas cohérent avec:
    Mais voilà, le try..except ne fonctionne pas et le script s'arrête et ne continue pas (ne vas pas dans le try).
    Mais bon...
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre éclairé
    Avatar de clavier12AZQSWX
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2009
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 414
    Points : 871
    Points
    871
    Par défaut
    oups j'ai fait une coquille.

    en fait c'est :

    Mais voilà, le try..except ne fonctionne pas et le script s'arrête et ne continue pas :
    il ne vas pas dans le Except pour afficher le retour erreur.
    il ne va même pas en "print "3 : Juste apres envoi e" puisque l'erreur bloque tout et stop le script

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 781
    Points
    36 781
    Par défaut
    Salut,

    Une erreur lève une exception qui provoquera l’arrêt du script.
    Sinon, le script n'avance pas et il faut faire un ^C ou un kill du process.

    Si c'est complique a raconter, vous pouvez l'illustrer avec des cut&paste.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Pourquoi mon code rotate ne fonctionne pas?
    Par PhilHype dans le forum jQuery
    Réponses: 6
    Dernier message: 04/11/2013, 11h13
  2. [C#/DataView] Pourquoi mon tri ne donne pas le resultat escompté ?
    Par Low-Fi dans le forum Accès aux données
    Réponses: 1
    Dernier message: 12/08/2006, 22h15
  3. [C#] Pourquoi mon composant DCOM ne fonctionne t-il pas ?
    Par mimibobo dans le forum Services Web
    Réponses: 1
    Dernier message: 27/07/2006, 13h51
  4. Réponses: 2
    Dernier message: 12/05/2006, 23h01

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