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 :

Stopper un programme


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 146
    Par défaut Stopper un programme
    Bonjour, dans mon programme j'ai une liste qui devrait retourner 2 variable:
    mais parfois quand il ya une erreur de connexion ma liste retourne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list = ["erreur d'authentification..........."]
    alors j'ai traiter cela de la facon suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if "erreur d'authentification..........." in list:
    print >> sys.stderr, ""erreur d'authentification..........." 
    break
    else:
    print >> sys.stderr, list[0]
    j'ai mis le break pour arréter le processus quand il detecte une erreur mais sa ne marche pas et sa m'affiche comme erreur: 'break' outside loop

  2. #2
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonjour,

    Vous pouvez utiliser break avec for et while, pas dans une condition (if).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    for i in range(5):
        break
    print("suite")
    while i:
        break
    print("suite")
    if i:
        break
    print("suite")
    @+

  3. #3
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 068
    Par défaut
    j'ai mis le break pour arréter le processus quand il detecte une erreur mais sa ne marche pas et sa m'affiche comme erreur: 'break' outside loop
    quel process ? c'est un thread? un processus séparé? ...?

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Par défaut
    Comme expliqué par PausaKawa, break ne fait pas ce que tu crois, il permet de sortir d'une boucle.
    Utilise plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sys.exit("erreur d'authentification...........")
    Ou avec une exception:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    class AuthenticationError: pass
    if "erreur d'authentification..........." in list:
        raise AuthenticationError("erreur d'authentification...........")
    Par défaut il affichera le message d'erreur et un traceback et arrêtera l'exécution, mais tu peux catcher l'exception là où ça convient pour modifier le comportement, si un jour tu souhaites traiter le problème différemment.

  5. #5
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Il y a pas mal de chose qui me gène dans ce message...

    1) Vous ne devez pas utiliser le mot 'list', celui ci existe pour Python.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> l = list
    >>> l
    <type 'list'>
    Si vous y tenez vraiment vous pouvez écrire List ou encore list_ (voir PEP8) mais pas juste list.

    2) List = [element] c'est une liste, List = ("toto", "3") c'est un tuple. Ce n'est pas le même objet.

    3) Bizarre que 'list' retourne soit un tuple soit une liste avec un seul élément... Erreur dans le code avant ?

    4) Il n'y a pas d'indentation dans votre code présenté et pourtant vous utilisez les balises code...
    Sans parler de ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print >> sys.stderr, ""erreur d'authentification..........."
    Nous n'avons pas le bon code.

    @+

Discussions similaires

  1. stopper un programme automatiquement
    Par pascb423 dans le forum VB.NET
    Réponses: 6
    Dernier message: 01/07/2009, 07h04
  2. Gestion d'erreur -> Stopper le programme
    Par snoopy69 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 10/03/2009, 11h28
  3. Stopper un programme
    Par Thorsen31 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 28/02/2009, 21h43
  4. stopper un programme avec l'appui d'une touche
    Par lepetit dans le forum VBScript
    Réponses: 1
    Dernier message: 18/02/2008, 19h16
  5. Stopper le programme avec un THREAD
    Par Mamat31 dans le forum Threads & Processus
    Réponses: 2
    Dernier message: 13/06/2007, 10h48

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