java, mettre le programme en attente

java, mettre le programme en attente - Java - Programmation

Marsh Posté le 29-01-2004 à 16:03:40    

salut tout le monde :)
 
je voudrais savoir comment je peux mettre mon programme en attente qq seconde comme ceci :
 
System.out.println("je veux attendre trois secondes" );
wait(3); //c'est ce que je vous demande :)
System.out.println("il s'est passé trois seconde" );
 
merci beaucoup :)
 

Reply

Marsh Posté le 29-01-2004 à 16:03:40   

Reply

Marsh Posté le 29-01-2004 à 16:06:16    

Code :
  1. try{
  2.   Thread.sleep(3000);
  3. }catch(InterruptedException e){}


Message édité par R3g le 29-01-2004 à 16:06:33
Reply

Marsh Posté le 29-01-2004 à 16:11:27    

pas mieux

Reply

Marsh Posté le 29-01-2004 à 16:32:35    

<mode pete boule>à part que les catchs vide c'est mal </mode pete boule>


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 29-01-2004 à 16:43:19    

benou a écrit :

<mode pete boule>à part que les catchs vide c'est mal </mode pete boule>

dans le cas d'un bete sleep: 1/ pq il serait interrompu 2/ qu'est-ce que tu fais pour rattraper le coup si c interrompu?
 
(pas se facher, c'est une vraie question)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 29-01-2004 à 16:45:45    

benou a écrit :

<mode pete boule>à part que les catchs vide c'est mal </mode pete boule>


 
(resultat direct des Checked Exception)
 

Reply

Marsh Posté le 29-01-2004 à 16:45:47    

the real moins moins a écrit :

dans le cas d'un bete sleep: 1/ pq il serait interrompu 2/ qu'est-ce que tu fais pour rattraper le coup si c interrompu?
 
(pas se facher, c'est une vraie question)


1/ pkoi il ne pourrait pas l'être ?  
2/ Thread.interrupt(). cf : http://www.javaspecialists.co.za/archive/Issue056.html


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 29-01-2004 à 16:46:19    

chrisbk a écrit :


(resultat direct des Checked Exception)


 :??: hein ?


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 29-01-2004 à 16:47:45    

benou a écrit :


 :??: hein ?


 
vu que t'es obligé de catcher l'exception, ce genre de catch kifontrien a part dire "ta gueule" au compilo sont assez repondu. (enfin c ce que j'ai lu sur le sujet)

Reply

Marsh Posté le 29-01-2004 à 16:47:53    

et de façon générale, quand je mets un catch vide (parfois ce que tu dois faire c'est réellement ne rien faire) je commente pour expliquer pourquoi il est vide.


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 29-01-2004 à 16:47:53   

Reply

Marsh Posté le 29-01-2004 à 16:47:53    

benou a écrit :


 :??: hein ?


 
devoir les catcher avec un truc vide alors que si elle n'était pas checked tu ne serais pas *obligé* d'ajouter un cacth avec rien dedans.
 
Cela dis je ne suis pas d'accord avec crisbéka. Les checked exceptions c'est bien, c'est la facon dont certains les utilisent qui est le problème

Reply

Marsh Posté le 29-01-2004 à 16:48:25    

chrisbk a écrit :


 
vu que t'es obligé de catcher l'exception, ce genre de catch kifontrien a part dire "ta gueule" au compilo sont assez repondu. (enfin c ce que j'ai lu sur le sujet)


 
tu as lu ça où au juste?

Reply

Marsh Posté le 29-01-2004 à 16:48:51    

chrisbk a écrit :


vu que t'es obligé de catcher l'exception, ce genre de catch kifontrien a part dire "ta gueule" au compilo sont assez repondu chez les débutants et les mauvais programmeurs qui n'ont aucune notion de robustesse d'application. (enfin c ce que j'ai lu sur le sujet)


[:benou_jap]


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 29-01-2004 à 16:49:09    

DarkLord a écrit :


Cela dis je ne suis pas d'accord avec crisbéka. Les checked exceptions c'est bien, c'est la facon dont certains les utilisent qui est le problème


 
A vrai dire je ne sais pas si c'est bien ou c'est mal, je suis meditatif. Certains disent qu'on devrait laisser le choix au programmeur de ne prendre que les exceptions l'interessant et de laisser le reste remonter. D'autres diront comme toi.  
 

Reply

Marsh Posté le 29-01-2004 à 16:49:25    


 
oui, ok, ca regle le pb

Reply

Marsh Posté le 29-01-2004 à 16:51:11    

sur le sujet :
 
http://msdn.microsoft.com/vcsharp/ [...] fault.aspx
 
et puiske ms c'est des branleurs debutant qui n'y connaissent rien a la programmation d'appli stable :
 
http://www.mindview.net/Etc/Discus [...] Exceptions

Reply

Marsh Posté le 29-01-2004 à 16:52:11    

chrisbk a écrit :


A vrai dire je ne sais pas si c'est bien ou c'est mal, je suis meditatif. Certains disent qu'on devrait laisser le choix au programmeur de ne prendre que les exceptions l'interessant et de laisser le reste remonter. D'autres diront comme toi.  


ben ils se trompent  :sweat:  
 
Tout un tas de plantage du style NullPointerException seraient évités si les gens savaient gérer les cas d'exception correctement ...
 


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 29-01-2004 à 16:58:25    

benou a écrit :


1/ pkoi il ne pourrait pas l'être ?  
2/ Thread.interrupt(). cf : http://www.javaspecialists.co.za/archive/Issue056.html

1/ ma question ct "donne moi un exemple concret qui ferait qu'un sleep soit interrompu" [:kiki]
2/ ok


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 29-01-2004 à 17:00:40    

the real moins moins a écrit :

1/ ma question ct "donne moi un exemple concret qui ferait qu'un sleep soit interrompu" [:kiki]
2/ ok


1/ L'arrêt propre d'un programme


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 29-01-2004 à 17:06:36    

benou a écrit :


1/ L'arrêt propre d'un programme  

du genre j'ai un sleep dans un thread et mon thread principal veut tout quitter?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 29-01-2004 à 17:20:09    

the real moins moins a écrit :

du genre j'ai un sleep dans un thread et mon thread principal veut tout quitter?


bha oui par exemple ...
 
Dans le cas du sleep, si tu ne réintérompa le thread, c'est risqué. ex :  

Code :
  1. import java.net.URL;
  2. import java.util.*;
  3. public class Test2 {
  4. public static void main(String[] args) {
  5.  final Thread mainThread = Thread.currentThread();
  6.  // Ici on lance un thread chargé de stopper le thread principal au bout d'une seconde
  7.  new Thread() {
  8.   public void run() {
  9.    try {
  10.     Thread.sleep(1000);
  11.     System.out.println("[stop thread] interrupt the main thread !" );
  12.     mainThread.interrupt();
  13.    } catch (InterruptedException e) {
  14.      //do nothing
  15.    }
  16.   }
  17.  }.start();
  18.  System.out.println("[main thread] sleep" );
  19.  try {
  20.   Thread.sleep(10000);
  21.  } catch (InterruptedException e) {}
  22.  // l'interruption a été catchée à vide => elle a été annulée   
  23.  System.out.println("[main thread] after first sleep" );
  24.  // donc si plus loin y a un autre sleep, il va s'executer  
  25.  // à la place de balancer une Interrupted Exception immédiatement   
  26.  try {
  27.   Thread.sleep(10000000); // ici le sleep va s'executer et attendre très longtemps !!
  28.  } catch (InterruptedException e) {}
  29.  System.out.println("[main thread] after second sleep" );
  30. }
  31. }


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 29-01-2004 à 17:22:37    


 [:w3c compliant]  
 
j'ai du mal à croire que ce soit Bruce Eckel qui ait écrit ca !
 
Vraiment, là je suis pas du tout d'accord avec lui !!!
 
Et puis le coup du "Here's a tool that I developed with the help of Heinz Kabutz" :/ Comme si il était pas foutu de faire ca tout seul :o
 
sans dire qu'il se débrouille pour foutre un attribut public là dedans [:kiki]. Volontairement en plus !  [:kiki]²


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 29-01-2004 à 17:23:51    

ben dis lui :D
http://www.mindview.net/Etc/Discus [...] onComments
fais gaffe y'a deja de la lecture  
 
donc ton point de vue in-extenso ?

Reply

Marsh Posté le 29-01-2004 à 17:26:58    

benou :jap: pour l'exemple


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 29-01-2004 à 17:28:14    

chrisbk a écrit :

ben dis lui :D
http://www.mindview.net/Etc/Discus [...] onComments
fais gaffe y'a deja de la lecture  
 
donc ton point de vue in-extenso ?
 

moi ce que j'en dis c'est que les checked exceptions font chier les gens que benou à decrit plus haut, et que si elles etaient pas checkées la situation serait encore pire.
c'est le point de vue qui prend les utilisateurs pour des cons.
le point de vue de b.eckel est peut etre de partir de l'idée optimiste que tous les developpeurs sont des gens intelligents et qu'ils n'ont pas besoin qu'on les assiste? (j'ai pas lu)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 29-01-2004 à 17:31:01    

chrisbk a écrit :


donc ton point de vue in-extenso ?


C'est pas parce que y a des mauvais programmeurs qui ne savent pas coder qu'il faur priver un langage d'un de ces meilleur moyens d'être extremenent robuste [:spamafote]
 
La robustesse a un prix. Un développeur qui fait des catch vide choisit explicitement de ne pas payer ce prix. Ca le regarde, il en subira les conséquences plus tard ...  
 
N'avoir que des UncheckedException c'est permettre de passer involontairement à côté d'exception importante. Avoir des CheckedException c'est obliger un développeur à volontairement passer à côté d'exception (si il le souhaite)


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 29-01-2004 à 17:35:02    

the real moins moins a écrit :


c'est le point de vue qui prend les utilisateurs pour des cons.
le point de vue de b.eckel est peut etre de partir de l'idée optimiste que tous les developpeurs sont des gens intelligents et qu'ils n'ont pas besoin qu'on les assiste? (j'ai pas lu)


Tu peux être inteliggent et passer involontairement à côté d'une exception : ca t'oblige à toujours avoir une parfaite connaissance des API que tu utilises.  
 
Et puis, imagine le cas où tu utilises une API qui a été mal documentée : pas moyen de savoir quelle methode peut déclencher quelle exception, sauf à aller parcourir tout le code que cette methode utilise :/


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 29-01-2004 à 17:37:02    

the real moins moins a écrit :

moi ce que j'en dis c'est que les checked exceptions font chier les gens que benou à decrit plus haut, et que si elles etaient pas checkées la situation serait encore pire.
c'est le point de vue qui prend les utilisateurs pour des cons.
le point de vue de b.eckel est peut etre de partir de l'idée optimiste que tous les developpeurs sont des gens intelligents et qu'ils n'ont pas besoin qu'on les assiste? (j'ai pas lu)


 
certains (dans le gros paté de discussion) disent (a ce que je considere etre a juste titre) que ca te rajoute des chiés de code alors que t'en as pas besoin. genre : A appelle, B, B appelle C, C appelle D. Et D leve une exception que seul A peut traiter, fo que tu te tapes toute la pile d'appele a rajouter des closes throws . Au lieu de pouvoir centraliser tes traitements d'exception a un point donné, tu te retrouves a avoir des petites gestions de ci de la.
 
A titre perso j'apprecie le checked exception quand je reprends une lib : au moins je sais ce qu'elle m'envoie au nez, sans pour autant a aller fouiller dans la doc a chaque appel de fonction. A titre perso ca me saoule d'avoir parfois a ecrire du code de gestion d'exception la ou y'en a pas besoin. D'ou mon interrogation sur l'interet des (un)checked exceptions  
 
Ceux de la discu. parlent de programme de grandes tailles, je ne suis pas convaincu qu'il n'y ait que des branleurs debutants feneant la dedans. Au vu des litres de discu, ca a pas l'air aussi simple que ca


Message édité par chrisbk le 29-01-2004 à 17:39:26
Reply

Marsh Posté le 29-01-2004 à 17:40:30    

chrisbk a écrit :


certains (dans le gros paté de discussion) disent (a ce que je considere etre a juste titre) que ca te rajoute des chiés de code alors que t'en as pas besoin. genre : A appelle, B, B appelle C, C appelle D. Et D leve une exception que seul A peut traiter, fo que tu te tapes toute la pile d'appele a rajouter des closes throws . Au lieu de pouvoir centraliser tes traitements d'exception a un point donné, tu te retrouves a avoir des petite gestion de ci de la.


ben oui mais comment tu peux savoir au niveau de A que D a été appelé ?? C'est bien ca le problème : t'es obligé de connaître le fonctionnement interne du prog pour pouvoir t'en servir ou alors avoir une doc très précise et qui a été faire très consciencieusement.
 
Je vois pas le problème de rajouter quelques throws ... Ca permet de faire la même chose sauf que là y a pas de doute : A saura qu'en appelant B il risque de se prendre la fameuse exception.


Message édité par benou le 29-01-2004 à 17:44:23

---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 29-01-2004 à 17:43:19    

et puis bon, si le problème c'est les catch vides qui "perdent" les exceptions, à défaut de bon programmeur, y a qu'à utiliser un bon éditeur pour détecter ce genre de conneries [:spamafote]


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 29-01-2004 à 17:43:35    

benou a écrit :


ben oui mais comment tu peux savoir au niveau de A que D a été appelé ?? C'est bien ca le problème : t'es obligé de connaître le fonctionnement interne du prog pour pouvoir t'en servir.
 
Je vois pas le problème de rajouter quelques throws ... Ca permet de faire la même chose sauf que là y a pas de doute : A saura qu'en appelant B il risque de se prendre la fameuse exception.


 
A la longue ca fait un paté de throws.  Pour le cas cité c'est quand tu connais le prog en dessous. genre la fonction ecritFloat appelé par ecritVecteur appelé par ecritMesh appelé par ecritScene appelé par export foire, ben ton exception tu la traitera que dans export, entre tps t'as une pile de throws
 

Reply

Marsh Posté le 29-01-2004 à 17:47:47    

chrisbk a écrit :


 entre tps t'as une pile de throws


?  
 
ben c'est juste que chaque méthode qui déclare son throws ... ce sera la même exception qui va remonter ... ou à la rigeur une NestedException si une des méthode trouve ca mieux [:spamafote]
 
Qu'est ce que t'as contre le fait d'écrire un throws ? De toute façon, si tu le mets dans le source, faudra que tu l'écrives dans la doc [:spamafote]
 
T'as été maltraité par un throws quand tu étais petit ? ils te font peur, maintenant ? :)


Message édité par benou le 29-01-2004 à 17:49:11

---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 29-01-2004 à 17:51:25    

bah ecoute je suis assez mal placé pour te repondre, ma plus grosse appli c'est de l'unchecked en C++, et en java g jamais fait du bien gros.  
 
d'autre avec plus d'xp tendent a dire que ca ammene plus de soucis qu'autre chose. Va lire (au hasard c trop long sinon)la discussion sur le sujet, t'aurais ptet des avis plus intelligent que les miens sur pourquoi c'est bad
 
 

Reply

Marsh Posté le 29-01-2004 à 17:52:38    

Excellent !!!! [:ddr555]
 

Citation :

Hi Bruce and co,  
 
I've managed to fiddle javac to not check exceptions anymore *evil grin*.  
 
Very simple really. Add a directory java/lang to your project and copy into that directory Exception.java and RuntimeException.java  
 
Change Exception to extend RuntimeException and change RuntimeException to extend Throwable.  
 
Now the compile-time exception checking is turned off.  
 
Heinz  


[:rofl]


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 29-01-2004 à 17:53:46    

benou a écrit :


T'as été maltraité par un throws quand tu étais petit ? ils te font peur, maintenant ? :)


 
 
pas du tout, meme quand j'ai commencé c# j'ai foutu du throws au cul de mes proto de fonction pour finalement me faire envoyer boulé par le compilo :D Comme je te dis je sais pas trop quoi en penser, des fois ca lourde bien ces checkeds, mais le coté "je sais ce que je risque d'avoir comme erreur" me plait bien (avec le "j'envoie ca, l'appelant se demerde, c pu mon pb" )
 
Si java est le seul langage a ne proposer que des checked, c'est qu'il y a une raison (eg pkoi les autres langages choisissent generalement la voix de l'unchecked ?)

Reply

Marsh Posté le 29-01-2004 à 17:54:44    

Accessoirement, pourquoi java impose que l'on fasse deriver nos exceptions de throwable ?

Reply

Marsh Posté le 29-01-2004 à 17:55:35    

chrisbk a écrit :

Va lire (au hasard c trop long sinon)la discussion sur le sujet, t'aurais ptet des avis plus intelligent que les miens sur pourquoi c'est bad


ben en gros, la justification de son argumentation repose là dessus (trouvé dans la discu) : "But I usually find that trying to force people to behave properly is a fruitless enterprise", et moi je suis pour forcer les gens !  
 
et les foueter si ils essayent de contourner la règle [:indiana jones]


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 29-01-2004 à 17:58:46    

chrisbk a écrit :

Accessoirement, pourquoi java impose que l'on fasse deriver nos exceptions de throwable ?


Parce qu'il y avait que des anciens programmeurs C pour pouvoir immaginer qu'il était logique de balancer un int en tant qu'exception [:spamafote]


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 29-01-2004 à 17:59:48    

chrisbk a écrit :


Si java est le seul langage a ne proposer que des checked, c'est qu'il y a une raison (eg pkoi les autres langages choisissent generalement la voix de l'unchecked ?)


une dépendance au core dump [:spamafote]


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 29-01-2004 à 18:00:04    

benou a écrit :


Parce qu'il y avait que des anciens programmeurs C pour pouvoir immaginer qu'il était logique de balancer un int en tant qu'exception [:spamafote]


 
nan ca (desole) c'est naze comme explication  :D surtout en java ou y'a pas d'autoboxing. A la rigueur un Integer [:aloy]
 
d'ailleurs y'a pas d'exception en C
 

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed