Dans le cadre de mon projet, je voulais juste savoir si vous auriez, par hasard, sous le coude, comme ça, des cas concrets typiques de mauvaise gestion des exceptions en Java et/ou en C++ et/ou en .Net (pas de jaloux), les trucs les plus crades que vous ayez pu croisez dans votre vie de codeur expérimenté.
Ce que je recherche typiquement, c'est des exemples de code (compilable, executable) montrant une mauvaise gestion des exceptions.
Merci à vous !
Journal Mauvais code, lachez-vous
6
nov.
2003

# Re: Mauvais code, lachez-vous
Posté par lorill (page perso) . Évalué à 2.
//truc plantogene
} catch(Exception e) {
//rien du tout
}
[^] # Re: Mauvais code, lachez-vous
Posté par Space_e_man (page perso) . Évalué à 3.
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 Fabimaru (page perso) . Évalué à 3.
[^] # Re: Mauvais code, lachez-vous
Posté par manatlan (page perso) . Évalué à 1.
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) . Évalué à 5.
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) . Évalué à 1.
[^] # Re: Mauvais code, lachez-vous
Posté par Nelis (page perso) . Évalué à 1.
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
}
}
}
[^] # Re: Mauvais code, lachez-vous
Posté par Benoît Bailleux . Évalué à 1.
# code panique
Posté par Gabriel . Évalué à 4.
Un pote en panique avait écrit çà:
select case (variable)
case 0:
monCompteur=0
default:
monCompteur=variable
ça plante pas mais ça fait bien rigoler
# Re: Mauvais code, lachez-vous
Posté par Nicolas Delsaux (page perso) . Évalué à 3.
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 (page perso) . Évalué à 1.
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) . Évalué à 1.
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) . Évalué à 0.
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
Posté par lom (page perso) . Évalué à 3.
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...
Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.