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

API, COM et SDKs Delphi Discussion :

Désactiver la boite de dialogue d'erreur par défaut


Sujet :

API, COM et SDKs Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 312
    Par défaut Désactiver la boite de dialogue d'erreur par défaut
    Bonjour,
    Je suis en train de développez une application Delphi Win32 qui fait appel à une assembly .net enregistrer via COM. Lorsque que cette dll détecte une erreur, elle envoie un exception qui peut être récupéré par l'application.

    Seulement voila, cette application est un batch qui est censé être automatisé.
    Or, a chaque fois qu'une erreur se produit, boite de dialogue apparait avec l'erreur de type OleError, ce qui bloque l'action alors que je voudrai que l'executable s'arrête.

    Y a t il possibilité de pouvoir désactiver ce message ? J'ai essayé avec Application.OnException et setErrorMode , mais cela ne marche pas.

    Merci d'avance.

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 094
    Par défaut
    l'Erreur survient à quel moment, try ... except ne filtre pas l’exception ?
    C'est bien l'erreur et pas la notification du déboggueur ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 312
    Par défaut
    l"exception viens du cote .net (je fais un rethrow) puis elle rentre bien dans un try except qui effectue un halt(ERROR); aucun showmessage null part. Et pourtant il y a toujours cette boite de dialogue qui apparait.

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 094
    Par défaut
    Halt, je ne l'ai jamais utilisé, tu veux arrêter ton programme dès qu'il y a une erreur, un peu violent !
    Halt provoquerait-t-il un message ?
    Tu as essayé autre chose ?

    est-ce que cela entre dans la clause Except ?
    As-tu le message aussi bien en mode Débogage qu'en exécution hors de Delphi ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 312
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    est-ce que cela entre dans la clause Except ?
    As-tu le message aussi bien en mode Débogage qu'en exécution hors de Delphi ?
    J'ai ce type de message alors que j'ai compilé en mode release et que je l’exécute hors IDE.
    Images attachées Images attachées  

  6. #6
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 094
    Par défaut
    ton code ressemble à ceci je suppose ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    try
      MonAssembly.LaFonctionQuiFaitErreur
    except
      on Eoe: EOleException do  
        Halt(Eoe.ErrorCode); // ça y passe ? avant le message, après le message pas du tout ? c'est un nombre négatif HRESULT en 0x800...
      on EOleError do
        Halt(1001); 
      on Exception do
        Halt(1002);
    end;
    OnException du TApplication ou TApplicationEvents n'ont pas non plus été appelé si j'ai bien compris !
    C'est comme si l'exception ne remontait pas à ton programme et était capturé avant pour l'affichage !

    J'ai géré des Exceptions OLE émis de mes ActiveX, je provoquais moi même des EOleSysError\EOleError et j'avais mes on Eoe: EOleError do begin qui interceptait les exceptions qui se propageait de DLL en DLL !
    D'ailleurs la couche DB utilisée pouvait aussi émettre des EOleError, chez cet employeur, la DB devait être géré en DCOM si mes vieux souvenirs sont exactes, cela ne remontait pas de EDataBaseError mais des EOleError contenant le message de la DB pouvant être Oracle ou SQL Server (ce progiciel pouvait tourner sur les deux)
    Idem, try except !


    j'ai même forcer cette gestion dans les Gestionnaires d’événement qui par défaut cache les Exceptions

    Par contre tout était en Delphi 3,5 et 7 !
    Peut-être que le .NET pose problème pour la transmission des Exceptions ce qui est dommage pour un mécanisme prévu à cet effet !

    Ou alors un Thread interne à cet objet COM.Net
    tu lance ta fonction, elle est asynchrone et déclenche l'exception après ton bloc try..except
    C'est vrai que là, il peut-être plus difficile de gérer l'exception, et si cela trouve c'est peut-être même impossible !
    En général, j'évite les Exceptions en Asynchrone, je propose des Evènements OnError pour les gérer par l'appelant !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/05/2015, 21h59
  2. Réponses: 2
    Dernier message: 21/05/2015, 12h42
  3. [AC-2007] Désactiver la boite de dialogue avertissement
    Par leone dans le forum Access
    Réponses: 2
    Dernier message: 22/05/2010, 08h50
  4. Modifier les pages d'erreur par défaut de tomcat
    Par PaladinFr dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 19/09/2008, 14h27
  5. Boite de saisie et valeur par défaut
    Par Tempotpo dans le forum Composants VCL
    Réponses: 12
    Dernier message: 25/07/2005, 14h18

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