Derniers journaux de Floxy :
- [09/10@06:22] Verification de Syntaxe avant un commit
- [15/07@17:46] Le nouveau Mozilla.org est arrivé
- [19/05@08:35] CVS + Samba
- [08/05@07:22] Musique de la bande annonce Matrix Reloaded
- [06/05@20:33] Des nouvelles du Zaurus 5600/7000 ?
- [01/05@18:59] Debian et Carte PCI USB...
- [05/03@08:32] Achat d'un portable
- [01/01@00:55] Bonne Année
- [01/01@00:55] Bonne Année
- [19/12@13:27] Fonctionnement du stick USB ADDITEK MP3 sous Linux
- [11/12@18:04] Les PDA et Linux
- [28/10@17:09] Les services de prototypage et de fabrication de moules
- [28/10@15:39] Mandrake : Quand il faut y aller...!
Journal : Mauvais code, lachez-vous
Posté par Florent Zara (Jabber id, page perso, ) le 06 novembre 2003Ce que je recherche typiquement, c'est des exemples de code (compilable, executable) montrant une mauvaise gestion des exceptions.
Merci à vous !
> Lire le journal (14 commentaires, moyenne: 2,1).
Re: Mauvais code, lachez-vous
try {
//truc plantogene
} catch(Exception e) {
//rien du tout
}
-
[^]Re: Mauvais code, lachez-vous
Posté par Space_e_man (page perso, ) le 06/11/2003 à 08:02. (lien). Évalué à 3.catch(Exception e)
T'es trop genti là...
catch(...) { /* "Je verai ça plus tard..." */ }
C'est quand même mieu, non ? ^_^-
[^]Re: Mauvais code, lachez-vous
Posté par Tennis Prono (page perso, ) le 06/11/2003 à 12:18. (lien). Évalué à 3.Non car la personne qui a mis "Je verrai ça plus tard" a déjà mis un commentaire indiquant qu'il faut faire quelque chose, donc elle aide déjà celui qui va avoir à debugger le jour où il y aura un problème :-)
--
Pas de bureau 3d libre sans drivers libres!
-
-
[^]Re: Mauvais code, lachez-vous
Posté par manatlan (Jabber id, page perso, ) le 06/11/2003 à 08:03. (lien). Évalué à 1.autour de moi,
beaucoup de gens pratique celà ;-)
mais c vrai que pour certains cas : ça peut être utilisable-
[^]Re: Mauvais code, lachez-vous
Posté par MrTout (page perso, ) le 06/11/2003 à 08:11. (lien). Évalué à 5.C'est p'tet utilisable mais c'est une mauvaise utilisation des exceptions.
Sinon, on trouve aussi des :
try {
traitement iteratif compliqué {
if traitement fini { raise fini }
}
} catch (fini) {
}
On leur à dit que le goto c'est mal alors ils sont sans doute frustrés...
-
-
[^]Re: Mauvais code, lachez-vous
Posté par Nicolas Delsaux (page perso, ) le 06/11/2003 à 08:13. (lien). Évalué à 1.C'est normal, si du moins le commentaire dans le catch est significatif.
-
[^]Re: Mauvais code, lachez-vous
Posté par Nelis (page perso, ) le 06/11/2003 à 09:47. (lien). Évalué à 1.Il y a des cas ou ça peut être utilisé :
Connection con = null;
try {
con = getConnection();
// Some JDBC here
con.close();
con = null;
} catch (SQLException e) {
// Some logging or appropriate behavior
}
finally {
if (con != null) {
try { con.close(); } catch (SQLException e) {
// Rien du tout
}
}
}--
Vache qui rit, à moitié dans son lit-
[^]Re: Mauvais code, lachez-vous
Posté par Benoît Bailleux (Jabber id, ) le 06/11/2003 à 13:28. (lien). Évalué à 1.Ouaip, ben moi, je ne veux rien avoir à faire avec le DBA qui va te tomber dessus a bras raccourcis parce que tu ne vérifies pas que tes connexions sont bien fermées ...
--
BB
-
code panique
C'était en asp - le vb script côté serveur de microsoft (déjà, premier erreur)
Un pote en panique avait écrit çà:
select case (variable)
case 0:
monCompteur=0
default:
monCompteur=variable
ça plante pas mais ça fait bien rigoler
Every takeoff is optional. Every landing is mandatory. -- Rules Of Flying
Re: Mauvais code, lachez-vous
public boolean methodeA() {
try {
// quelque chose
return true;
} catch(Exception e) {
return false;
}
}
public void methodeB throws Exception {
if(!methodeA()) {
throw new Exception();
}
}
Et je l'ai vu dans du code, en vrai. Si.
-
[^]Re: Mauvais code, lachez-vous
Posté par Florent Zara (Jabber id, page perso, ) le 06/11/2003 à 08:23. (lien). Évalué à 1.Yep, c'est ce qui pourrais s'appeler "programmer par exceptions" :)
Les exceptions en sont plus là pour gérer les erreurs, mais font partie intégrante de la logique du programme !-
[^]Re: Mauvais code, lachez-vous
Posté par franck (page perso, ) le 06/11/2003 à 09:54. (lien). Évalué à 1.Dans ce cas j'ai vu un
catch(NewConnectionException nce)
et un
catch(NewMessageException nme)
...
les listener c'est trop compliqué ... les exception c'est meiux(c) ...
-
[^]Re: Mauvais code, lachez-vous
Posté par DPhil (page perso, ) le 06/11/2003 à 13:15. (lien). Évalué à 0.Ca ce pratique dans certains langages comme Python. C'est pratique je trouve avec des itérateurs, lorsqu'on arrive à la fin de l'itérateur, on lance une exception qui est propagée pour terminer le traitement sur cet itérateur.
Tiré de Python in a nutshell:
Python also uses exceptions to indicate some special situations that are not errors and are not even abnormal occurrences. For example,..., an iterator's next method raises the exception StopIteration when iterator has no more items. This is not an error, and it is not even an anormalous condition, since most iterators run out of items eventually."
_temp_iter = iter(c)
while True:
try: x = _temp_iter.next()
except StopIteration: break
statement(s)
Une exception ne sert pas qu'à gérer les erreurs, mais à gérer ce qui sort du traitement courant, elle peut faire partie intégrante du programme et je ne trouve pas cela forcément "crade". Le gros problème c'est que de lever une exception est souvent la solution la moins efficace (instanciation et propagation de l'exception prennent beaucoup de ressources).
-
Re: Mauvais code, lachez-vous
Un que j'ai beaucoup aimé:
try
{
// t = gros tableau
for (int i = 0; ; i++)
{
bosse(t[i]);
}
}
catch (indexOutOfBoundException e)
{
// fin de la boucle
}
suite...
Et en plus je l'ai déjà vu...
Les journaux sont destinés à des informations qui ne sont pas suffisamment intéressantes
pour être validées en dépêche (sinon n'hésitez pas à proposer votre information en
dépêche), qui sont sans rapport avec Linux ou le libre, ou simplement pour donner votre
avis. Si vous désirez poser une question, merci d'utiliser 

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.