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

Windows Discussion :

Gestion des erreurs et des exceptions en programmation Win32


Sujet :

Windows

  1. #1
    Membre du Club Avatar de masterx_goldman
    Inscrit en
    Mai 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 164
    Points : 51
    Points
    51
    Par défaut Gestion des erreurs et des exceptions en programmation Win32
    Salut tout le monde,

    Pourriez vous m'expliquer comment gérer les exceptions en programmation Win32/C++ ?
    En faite, ce que j'ai compris jusqu'à ce moment c'est que la programmation Win32 ne génère pas d'exception au sens classique qu'on peut "catcher" en utilisant des try catch mais plutôt des erreurs d'appel en cas d'échec dont on peut récupérer le code en utilisant la fonction GetLastError() .

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
        if( !CreateProcess( NULL,   // No module name (use command line)
            argv[1],        // Command line
            NULL,           // Process handle not inheritable
            NULL,           // Thread handle not inheritable
            FALSE,          // Set handle inheritance to FALSE
            0,              // No creation flags
            NULL,           // Use parent's environment block
            NULL,           // Use parent's starting directory 
            &si,            // Pointer to STARTUPINFO structure
            &pi )           // Pointer to PROCESS_INFORMATION structure
        ) 
        {
            printf( "CreateProcess failed (%d).\n", GetLastError() );
            return;
        }
    Alors si quelqu'un peut m'expliquer si j'ai bien compris ou me corriger si j'ai des confusions de compréhension.

    Merci d'avance pour vos réponses.

  2. #2
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Points : 1 956
    Points
    1 956
    Par défaut
    Bonjour,

    Citation Envoyé par masterx_goldman Voir le message
    Salut tout le monde,

    Pourriez vous m'expliquer comment gérer les exceptions en programmation Win32/C++ ?

    En faite, ce que j'ai compris jusqu'à ce moment c'est que la programmation Win32 ne génère pas d'exception au sens classique qu'on peut "catcher" en utilisant des try catch mais plutôt des erreurs d'appel en cas d'échec dont on peut récupérer le code en utilisant la fonction GetLastError() .
    C'est bien ça. L'API Windows ne génère pas d'exceptions mais seulement des codes de retour (la plupart du temps TRUE / FALSE) et une "variable" interne au système permettant de récupérer exactement le type d'erreur, via GetLastError().

    Tu peux ensuite lancer une exception via les mécanismes propres au langage de programmation que tu utilises (try/throw/catch en C++ par exemple, ou encore des extensions disponibles via le compilateur de MS), soit utiliser des mécanismes (et des API) propres au système comme les SEH et/ou les VEH.

    Jette un coup d'œil à cette rubrique de la MSDN: Exception Handling in Visual C++

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/06/2014, 14h50
  2. Gestion des erreurs: table des erreurs
    Par capitaine dans le forum Access
    Réponses: 1
    Dernier message: 06/07/2006, 20h10
  3. Faire des retry sur des erreurs FTP
    Par fejjal dans le forum Réseau
    Réponses: 4
    Dernier message: 15/02/2006, 23h34

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