java, mettre le programme en attente - Java - Programmation
Marsh Posté le 29-01-2004 à 16:06:16
Code :
|
Marsh Posté le 29-01-2004 à 16:32:35
<mode pete boule>à part que les catchs vide c'est mal </mode pete boule>
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)
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)
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? |
1/ pkoi il ne pourrait pas l'être ?
2/ Thread.interrupt(). cf : http://www.javaspecialists.co.za/archive/Issue056.html
Marsh Posté le 29-01-2004 à 16:46:19
chrisbk a écrit : |
hein ?
Marsh Posté le 29-01-2004 à 16:47:45
benou 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)
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.
Marsh Posté le 29-01-2004 à 16:47:53
benou a écrit : |
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
Marsh Posté le 29-01-2004 à 16:48:25
chrisbk a écrit : |
tu as lu ça où au juste?
Marsh Posté le 29-01-2004 à 16:48:51
chrisbk a écrit : |
Marsh Posté le 29-01-2004 à 16:49:09
DarkLord 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.
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
Marsh Posté le 29-01-2004 à 16:52:11
chrisbk a écrit : |
ben ils se trompent
Tout un tas de plantage du style NullPointerException seraient évités si les gens savaient gérer les cas d'exception correctement ...
Marsh Posté le 29-01-2004 à 16:58:25
benou a écrit : |
1/ ma question ct "donne moi un exemple concret qui ferait qu'un sleep soit interrompu"
2/ ok
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" |
1/ L'arrêt propre d'un programme
Marsh Posté le 29-01-2004 à 17:06:36
benou a écrit : |
du genre j'ai un sleep dans un thread et mon thread principal veut tout quitter?
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 :
|
Marsh Posté le 29-01-2004 à 17:22:37
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
sans dire qu'il se débrouille pour foutre un attribut public là dedans . Volontairement en plus ! ²
Marsh Posté le 29-01-2004 à 17:23:51
ben dis lui
http://www.mindview.net/Etc/Discus [...] onComments
fais gaffe y'a deja de la lecture
donc ton point de vue in-extenso ?
Marsh Posté le 29-01-2004 à 17:26:58
ReplyMarsh Posté le 29-01-2004 à 17:28:14
chrisbk a écrit : ben dis lui |
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)
Marsh Posté le 29-01-2004 à 17:31:01
chrisbk a écrit : |
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
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)
Marsh Posté le 29-01-2004 à 17:35:02
the real moins moins a écrit : |
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
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. |
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
Marsh Posté le 29-01-2004 à 17:40:30
chrisbk 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 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.
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
Marsh Posté le 29-01-2004 à 17:43:35
benou a écrit : |
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
Marsh Posté le 29-01-2004 à 17:47:47
chrisbk a écrit : |
?
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
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
T'as été maltraité par un throws quand tu étais petit ? ils te font peur, maintenant ?
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
Marsh Posté le 29-01-2004 à 17:52:38
Excellent !!!!
Citation : Hi Bruce and co, |
Marsh Posté le 29-01-2004 à 17:53:46
benou a écrit : |
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 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 ?)
Marsh Posté le 29-01-2004 à 17:54:44
Accessoirement, pourquoi java impose que l'on fasse deriver nos exceptions de throwable ?
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
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
Marsh Posté le 29-01-2004 à 17:59:48
chrisbk a écrit : |
une dépendance au core dump
Marsh Posté le 29-01-2004 à 18:00:04
benou a écrit : |
nan ca (desole) c'est naze comme explication surtout en java ou y'a pas d'autoboxing. A la rigueur un Integer
d'ailleurs y'a pas d'exception en C
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