Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/05/2011, 21h07   #1
Membre régulier
 
Avatar de the-destroyer
 
Homme
Lycéen
Inscription : mars 2009
Messages : 201
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 17
Localisation : France

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : mars 2009
Messages : 201
Points : 80
Points : 80
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 :
function error(error){ throw error; }
Merci d'avance
the-destroyer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 21h37   #2
Membre Expert
 
Avatar de Watilin
 
Homme Matilin Torre
Étudiant
Inscription : juin 2010
Messages : 679
Détails du profil
Informations personnelles :
Nom : Homme Matilin Torre
Âge : 23
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 679
Points : 1 202
Points : 1 202
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.
__________________
Disposition de clavier ergonomique française : Bépo
Watilin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 17h32   #3
Membre régulier
 
Avatar de the-destroyer
 
Homme
Lycéen
Inscription : mars 2009
Messages : 201
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 17
Localisation : France

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : mars 2009
Messages : 201
Points : 80
Points : 80
d'accord merci,
mais l'utilisation de "throw" ne stop pas le script ? Il me semble que oui, c'est le problème :/
the-destroyer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 19h11   #4
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 933
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 933
Points : 4 756
Points : 4 756
Bonjour,
toutes les infos sur throw
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 20h03   #5
Membre régulier
 
Avatar de the-destroyer
 
Homme
Lycéen
Inscription : mars 2009
Messages : 201
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 17
Localisation : France

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : mars 2009
Messages : 201
Points : 80
Points : 80
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 ?
the-destroyer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 22h48   #6
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 933
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 933
Points : 4 756
Points : 4 756
Citation:
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.
Citation:
Ou est-il possible de créer une simple alert comme le fais firebug ?
exemple de mise en oeuvre
Code :
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...
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 19h53   #7
Membre régulier
 
Avatar de the-destroyer
 
Homme
Lycéen
Inscription : mars 2009
Messages : 201
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 17
Localisation : France

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : mars 2009
Messages : 201
Points : 80
Points : 80
d'accord merci pour votre aide !
the-destroyer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 19h57   #8
Membre régulier
 
Avatar de the-destroyer
 
Homme
Lycéen
Inscription : mars 2009
Messages : 201
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 17
Localisation : France

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : mars 2009
Messages : 201
Points : 80
Points : 80
Ah oui juste, toutes les pages de tout les navigateurs sont muni de "window.console" ?
the-destroyer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 20h06   #9
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 933
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 933
Points : 4 756
Points : 4 756
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.
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 20h20   #10
Membre régulier
 
Avatar de the-destroyer
 
Homme
Lycéen
Inscription : mars 2009
Messages : 201
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 17
Localisation : France

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : mars 2009
Messages : 201
Points : 80
Points : 80
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
the-destroyer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 20h36   #11
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 933
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 933
Points : 4 756
Points : 4 756
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.
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 20h44   #12
Membre Expert
 
Avatar de Watilin
 
Homme Matilin Torre
Étudiant
Inscription : juin 2010
Messages : 679
Détails du profil
Informations personnelles :
Nom : Homme Matilin Torre
Âge : 23
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 679
Points : 1 202
Points : 1 202
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.
__________________
Disposition de clavier ergonomique française : Bépo
Watilin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 21h39   #13
Membre régulier
 
Avatar de the-destroyer
 
Homme
Lycéen
Inscription : mars 2009
Messages : 201
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 17
Localisation : France

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : mars 2009
Messages : 201
Points : 80
Points : 80
d'accord merci pour votre aide ! =)
the-destroyer est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h33.


 
 
 
 
Partenaires

Hébergement Web