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

C# Discussion :

[C#] Retour d'erreur par une form


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 36
    Par défaut [C#] Retour d'erreur par une form
    Bonjour a tous (et bonne année!).

    Voilà, j'ai un petit probleme de codage...
    J'ai une application winform qui contient une fenetre (From1) qui, au click d'un bouton execute un thread qui traite un fichier texte. Jusque la, rien de bien compliqué.
    Seulement voilà, on m'a demandé de pouvoir lancer cette application aussi par la ligne de commande.

    Donc je recupere dans le main les arguments passés:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    static void Main(string[] args)
            {...}
    Ca, ca marche. Le programme, dans le cas ou il y a des arguments (ce qui signifie qu'on l'a lancé en ligne de commande) execute le thread et se ferme automatiquement.

    Mon probleme c'est que si l'execution a rencontré une erreur, je ne sais pas du tout comment la retourner sous dos...
    Quelqu'un aurait-il une idée?

    Merci d'avance parce que je seche bien là!

    Alex

  2. #2
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    En mode DOS ce que tu peux faire c'est renvoyer un code d'erreur. Pratique surtout si l'exécutable peut être lancé dans un batch ou depuis une autre application.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    static int Main(string[] args)
    {
        ...
        // En cas d'erreur on retourne un code d'erreur
        return codeErreur;
        ...
        // Fin du programme sans erreur
       return 0;
    }

  3. #3
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    salut

    il me semble que

    Application.Exit(value) te permet aussi de renvoyer une valeur vers un éventuel appelant extérieur

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 36
    Par défaut
    Bon, alors Application.Exit prend un evenement en parametre (ou rien) et ca ne marche pas. Il ne me ferme meme pas la fenetre...

    En fait, mon probleme, c'est que dans le main, on fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    static int Main(string[] args)
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1(args));
     
                return 0;                              
            }
    Et je ne sais pas comment faire pour recuperer une variable de Form1 dasn cette partie du code.

    Si je passe un parametre au constructeur de Form1 en ref, il me dit qu'il ne peut pas atteindre un objet deja detruit (Form1).
    Bref, que du bizarre...

    En tout cas, merci beaucoup pour votre aide.

  5. #5
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Erf, j'avais pas fait attention qu'il y avait une form. Il faut donc passer par Application.Exit à ce moment. Et le Application.Exit ne doit pas être dans la méthode Main mais dans les Form.

  6. #6
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    application.Exit ?

    Mais bien sur.. n'avais-je pas suggérer son utilisation ?

    (OK, je sors)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Noyau d'OS prouvé sans erreur par une équipe de recherche
    Par millie dans le forum Algorithmes et structures de données
    Réponses: 30
    Dernier message: 25/08/2009, 01h04
  2. retour de pointeur par une fonction
    Par Miko95 dans le forum C++
    Réponses: 17
    Dernier message: 12/12/2007, 01h33
  3. [Système] retour de résultats par une fonction
    Par maximenet dans le forum Langage
    Réponses: 7
    Dernier message: 18/09/2006, 21h32
  4. [POO] Retour de données par une fonction (return)
    Par webrider dans le forum Langage
    Réponses: 6
    Dernier message: 26/08/2006, 21h49

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