De la bonne utilisation des exceptions (was: -- ou benou ?) - Divers - Programmation
Marsh Posté le 04-02-2004 à 08:29:48
ouverture du ficher pour vérifier son existence
Marsh Posté le 04-02-2004 à 08:34:50
petite précision : c'est pour être averti de la nom existence d'un fichier dans le cas où on veut le lire.
Marsh Posté le 04-02-2004 à 08:34:59
Les exceptions, comme leur nom l'indique sont pour les cas exceptionnels. Une fonction ne doit pas sortir en exception si elle rend le service attendu.
Marsh Posté le 04-02-2004 à 08:42:51
kadreg a écrit : Les exceptions, comme leur nom l'indique sont pour les cas exceptionnels. Une fonction ne doit pas sortir en exception si elle rend le service attendu. |
Tout le monde est d'accord la dessus ....
on parle pas d'un throw on parle d'un catch
Du coup tu t'es trompé dans ton vote
Marsh Posté le 04-02-2004 à 08:51:43
lorill : pour alimenter le débat correctement, t'as cas ajouter ca dans ton 1er post :
-- :
Code :
|
benou :
Code :
|
Marsh Posté le 04-02-2004 à 08:52:40
Ca dépend ce qu'est le file
Marsh Posté le 04-02-2004 à 08:52:58
kadreg a écrit : Ca dépend ce qu'est le file |
un fichier
Marsh Posté le 04-02-2004 à 08:53:38
benou a écrit : |
Marsh Posté le 04-02-2004 à 08:55:01
En quoi la nature du file change quelque chose
Puour reprendre l'exemple de taiche, imagine que c'est un fichier d'initialisation optionnel
Marsh Posté le 04-02-2004 à 08:57:10
moktar1er a écrit : sujet pas clair |
vivement le vote des nanas
Marsh Posté le 04-02-2004 à 09:00:45
J'ai voté blanc passke j'm'en branle
Marsh Posté le 04-02-2004 à 09:03:47
Taiche a écrit : J'ai voté blanc passke j'm'en branle |
C'est à cause de toi que les 2 zouaves ont pourri blabla@prog sur 35 pages et tu votes blanc. bravo
P.S. -- rulez sur ce coup (plus de précisions dans le mareekotes d'hier )
Marsh Posté le 04-02-2004 à 09:05:09
mareek a écrit : |
Marsh Posté le 04-02-2004 à 09:08:28
mareek a écrit : |
nan mais vraiment, quand tu regardes les 2 codes un peu au dessus, tu trouves que le 1er est bcp plus lisible que le 2e
Marsh Posté le 04-02-2004 à 09:10:33
benou a écrit : |
Y'en a qui ont de la merde dans les yeux, faut les laisser s'ils veulent pas comprendre
Marsh Posté le 04-02-2004 à 09:12:37
benou a écrit : |
Quand j'vois l'indentation dégueulasse, j'me dis qu'y en a pas un pour rattraper l'autre
Marsh Posté le 04-02-2004 à 09:14:27
Taiche a écrit : |
c'est pas moi c'est joce
Marsh Posté le 04-02-2004 à 09:17:28
J'parle surtout des blocs L'indentation Sun-style me fait gerber
Marsh Posté le 04-02-2004 à 09:19:36
benou a écrit : |
Oui.
De plus, je trouve que catcher une exception pour qqch d'aussi trivial n'a aucun sens, une exception est qqch d'exceptionnel. Si on part comme ça, on peut jeter les ifs à la poubelle et tout faire à coup d'exception tant qu'on y est
Marsh Posté le 04-02-2004 à 09:29:38
mareek a écrit : |
bon, c'est to choix, comme dirait l'autre ...
mareek a écrit : |
comme je l'ai déjà dit, ca dépend du context.
Ce qui est exceptionnel pour l'appelé ne l'est pas forcément pour l'appelant.
Exemple : tu récupères une chaine saise par l'utilisateur. Elle est sensée contenir un nombre.
Pour récupérer la valeur du nombre, tu fais un parseInt(). Cette méthode peut générer un NumberFormatException (ce qui est logique dans son contexte). Toi tu dois catcher l'exception parce que le fait que l'utilisateur ait pu faire une bourde de saisie est logique dans ton contexte.
Donc catcher une exception n'a rien de rare ou de bizarre, même dans un cas d'execution normal.
Catcher une exception c'est fréquent. C'est la génération d'erreur qui doit rester exceptionnelle ...
Marsh Posté le 04-02-2004 à 09:33:51
V-O-S G-U-E-U-L-E-S :-o
Marsh Posté le 04-02-2004 à 09:39:17
ReplyMarsh Posté le 04-02-2004 à 10:21:57
kadreg a écrit : Les exceptions, comme leur nom l'indique sont pour les cas exceptionnels. Une fonction ne doit pas sortir en exception si elle rend le service attendu. |
chuis pas d'accord 'fin en VB on n'a que des errors et pas d'exception
benou a écrit : nan mais vraiment, quand tu regardes les 2 codes un peu au dessus, tu trouves que le 1er est bcp plus lisible que le 2e |
j'ai voté trop tôt: blanc. Et après coup j'aurais voté pour ton code.
Taiche a écrit : J'parle surtout des blocs L'indentation Sun-style me fait gerber |
défendable, on parle d'un bloc try. C'est un peu une exception dans la manière de gérer les blocs (non le jeu de mots n'était pas voulu )
Marsh Posté le 04-02-2004 à 10:23:01
ben je fais comme benou sur ce coup là... maintenant dire que c'est la meilleur chose à faire, je sais pas mais je trouve ca beaucoup plus simple et plus facile à lire
Marsh Posté le 04-02-2004 à 10:35:48
Le lancement d'une exception me parait plus lourd (création de l'objet, puis ensuite récupération par le GC), avec en plus la création de l'InputStream peut-être pour rien, pour attraper une exception qui n'est pas exceptionnelle... Je préfère le cas 1
Marsh Posté le 04-02-2004 à 10:38:35
DarkLord a écrit : V-O-S G-U-E-U-L-E-S :-o |
c'est tout? j'aurais espéré un avis de ta part sur la question
Marsh Posté le 04-02-2004 à 10:41:18
au moins en C on se poserait pas ce genre de question debile
Marsh Posté le 04-02-2004 à 10:43:17
chrisbk a écrit : au moins en C on se poserait pas ce genre de question debile |
On aurait coré
Marsh Posté le 04-02-2004 à 10:45:56
mais nan, c'est hyper safe le C, tant que tu n'utilises pas de pointeur
Marsh Posté le 04-02-2004 à 10:56:17
chrisbk a écrit : mais nan, c'est hyper safe le C, tant que tu n'utilises pas de pointeur |
Du coup ça enlève l'utilisation de chaînes de caractères, c'est un peu restrictif
Marsh Posté le 04-02-2004 à 10:58:15
Taiche a écrit : |
mais nan
Code :
|
Marsh Posté le 04-02-2004 à 10:59:01
drasche a écrit : |
bin mon avis c'est que si on s'attend à ce que le fichier ne puisse pas exister, je préfère tester sa présence que d'essayer de le loader et de me manger une exception, qd bien meme je la catcherai. Le fait que le fichier pourrait etre là juste après le test de présence . Pas du tout applicable dans ce cas.
Ce qui me dérange par contre c'est les cas du genre, je teste que le fichier existe, il existe, je le loade et je me mange une filenotfoundexception
ca c'est plus chiant à gérer.
Marsh Posté le 04-02-2004 à 11:05:17
j'ai voté -- !
je trouve ca plus clair de faire comme il le fait !!
parce que les catch multiples, a la fin, on s'y retrouve plus
Marsh Posté le 04-02-2004 à 11:06:33
walli a écrit : j'ai voté -- ! |
L'avis d'une programmeuse JS/VB ne nous interesse pas
Marsh Posté le 04-02-2004 à 11:08:22
ReplyMarsh Posté le 04-02-2004 à 11:09:00
Reply
Marsh Posté le 04-02-2004 à 08:28:21
Dans le traitement d'un fichier de configuration optionnel (si le fichier est la, on le traite, sinon on s'en fout mais c'est pas grave) :
-- :
benou :
Message édité par lorill le 04-02-2004 à 12:47:13