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

JavaScript Discussion :

Emuler un warning


Sujet :

JavaScript

  1. #1
    Membre habitué Avatar de the-destroyer
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 204
    Points : 125
    Points
    125
    Par défaut Emuler un warning
    Bonjour,

    après quelques recherches sur le web sans réponse, j'aimerai savoir s'il est possible de creer un warning ? C'est a dire de signaler un problème a l'utilisateur mais sans arrêter le script comme le fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function error(error){ throw error; }
    Merci d'avance

  2. #2
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Bonsoir,
    ça dépend ce que tu entends par « utilisateur ». Je suppose que tu parles d'un développeur qui va utiliser le code que tu auras écrit. Dans ce cas, throw me paraît une bonne idée… Il suffit que tu expliques à l'utilisateur (de visu, ou alors dans un manuel ou un tuto) qu'il doit mettre des blocs try/catch quand il utilise certaines de tes fonctions.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Membre habitué Avatar de the-destroyer
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 204
    Points : 125
    Points
    125
    Par défaut
    d'accord merci,
    mais l'utilisation de "throw" ne stop pas le script ? Il me semble que oui, c'est le problème :/

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 057
    Points : 44 589
    Points
    44 589

  5. #5
    Membre habitué Avatar de the-destroyer
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 204
    Points : 125
    Points
    125
    Par défaut
    Merci !
    Je savais pas qu'un objet pouvez lui être passé, et il n'y aucun moyen de faire continuer le script, avec "continue" par exemple ? Car des que "throw" est utilisé la fonction ou le script s'arrete :/ Ou est-il possible de créer une simple alert comme le fais firebug ?

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 057
    Points : 44 589
    Points
    44 589
    Par défaut
    et il n'y aucun moyen de faire continuer le script, avec "continue" par exemple
    throw doit s'utiliser dans un contexte try{...}catch(){...}, utilisée toute seule cette instruction fait effectivement planter le script.
    Ou est-il possible de créer une simple alert comme le fais firebug ?
    exemple de mise en oeuvre
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>[Test throw]</title>
    <style type="text/css">
    * {
      font-family : Verdana;
      font-size : 13px;
    }
    #console {
      border : 1px solid red;
      padding : 5px;
    }
    </style>
    <script type="text/javascript">
    function debug( msg){
      var oDebug = document.getElementById('console');
      if( !oDebug){
        oDebug = document.createElement('div');
        oDebug.id = 'console';
        document.body.insertBefore(oDebug ,document.body.firstChild);
      }
      oDebug.innerHTML += msg +'<br>';
    }
     
    var nbError = -1;
    function fctErreur(){
      var x;
      try{
        nbError++;
        if( nbError == 0){
          x += non_defini; // VRAI Erreur ICI
        }
        throw new Error('ERREUR indiscutable');
      }
      catch(e){
        if( nbError < 1)
          debug( '<b>Vrai ERREUR<\/b> ' +e.message);
        else
          debug( 'Inutile d\'insister...');
      }
      finally{
        if( nbError < 1)
          debug( 'Aller on n\'en parle plus...<br>');
        else
          debug( 'Il est <b>lourd<\/b> celui l&agrave !<br>');
      }
    }
    </script>
    </head>
    <body>
    <button onclick="fctErreur();">Test Erreur</button>
    </body>
    </html>
    cliques au moins 2 fois sur le bouton de test...

  7. #7
    Membre habitué Avatar de the-destroyer
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 204
    Points : 125
    Points
    125
    Par défaut
    d'accord merci pour votre aide !

  8. #8
    Membre habitué Avatar de the-destroyer
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 204
    Points : 125
    Points
    125
    Par défaut
    Ah oui juste, toutes les pages de tout les navigateurs sont muni de "window.console" ?

  9. #9
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 057
    Points : 44 589
    Points
    44 589
    Par défaut
    Citation Envoyé par the-destroyer Voir le message
    Ah oui juste, toutes les pages de tout les navigateurs sont muni de "window.console" ?
    non, c'est juste pour un exemple de debugage que j'ajoute la DIV en entête de document, j'aurais d'ailleurs dû l'appeler debug pour être plus judicieux.

  10. #10
    Membre habitué Avatar de the-destroyer
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 204
    Points : 125
    Points
    125
    Par défaut
    mais en dehors de ton code ? Par ex, opera et firefox ont tout deux un "window.console" qui est en fait la console de débogage de ces navigateurs, et qui possede une fonction "warn" qui creer juste ue erreur sans arreter le script

  11. #11
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 057
    Points : 44 589
    Points
    44 589
    Par défaut
    une erreur dans le script, plante le script quelque soit le navigateur indépendamment de la façon qu'a celui ci de remonter l'info sur le plantage.
    Ce que je te concède c'est qu'ils n'ont peut être pas tous la même façon de gérer cette erreur et de rendre la main.

  12. #12
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    En fait il faut imaginer que la navigateur lui-même a un gigantesque bloc try de « niveau -1 », qui englobe la totalité du script en cours d'exécution. Si une erreur est lancée quelque part et n'est pas interceptée par un catch du script, ça atterit dans le catch du navigateur, et ainsi tout le reste du code est zappé. L'erreur, quant à elle, est signalée et/ou journalisée, ça dépend du navigateur.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  13. #13
    Membre habitué Avatar de the-destroyer
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 204
    Points : 125
    Points
    125
    Par défaut
    d'accord merci pour votre aide ! =)

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

Discussions similaires

  1. un warning
    Par isidore dans le forum C
    Réponses: 6
    Dernier message: 14/04/2004, 12h25
  2. Un warning devient fatal
    Par tomnie dans le forum Linux
    Réponses: 3
    Dernier message: 01/04/2004, 13h48
  3. [langage] Récupérer des Warning ??
    Par armada dans le forum Langage
    Réponses: 2
    Dernier message: 05/06/2003, 16h45
  4. [warning][properties]problème de police introuvable
    Par cyrdec dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 11/04/2003, 17h41
  5. Warnings lors de la compilation
    Par polo54 dans le forum C
    Réponses: 5
    Dernier message: 07/02/2003, 09h12

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