Je vous propose de revoir quelques mauvaises pratiques rencontrées lors de la gestion des exceptions.
1 – Logger et rejeter
Description
Il s’agit içi de logger et rejeter à la fois une exception. Le problème vient de la redondance d’information que peut entraîner ce genre de pratiquer, on finit par polluer les logs de messages similaires et non pertinents.
try { //my code here } catch (AnException e){ Logger.log(e); throw e; }
Solution
Soit logger l’exception soit la rejeter avec un message + l’exception d’origine mais pas les 2.
2 – Jeter une exception de type Exception
Description
Très mauvaise pratique, en procédant de la sorte , le code est appauvri et aucune information n’est véhiculé il est préférable de jeter des exceptions spécifiques à un problème. De plus vous obligez les clients utilisateurs de votre code à catcher la classe Exception qui est une autre mauvaise pratique décrite plus bas.
Certains pourraient être tenté de faire comme cela pour gagner du temps mais croyez moi le code n’en sera que plus complexe à maintenir.
public void foo () throws Exception {
Solution
Si vous avez une méthode qui est un susceptible de lever une checked exception il est préférable de la lever clairement et si votre methode potentiellement lève plus d’une exception alors vous pouvez soit toutes les déclarer après la clause throws ou alors les réunir sous une super classes si elles cela a du sens, vous gagnerez ainsi en visibilité.
3 – Catcher la classe Exception
Description
Catcher la super class Exception est une très mauvaise pratique car vous traiter toutes les exceptions (checked et unchecked exception) de la même manière.
Techniquement cela veut dire que même les exceptions de type RuntimeException seront catchées en clair un NullPointerException sera traitée comme une checked Exception ce qui est complètement absurde car on ne peut rétablir suite à un NPE.
De plus cette façon de procéder vous prive potentiellement de détecter les futures changements qui pourraient avoir lieu dans le code appelé.
En effet si on venait a modifier la méthode en question par exemple en y ajoutant une autre checked exception, du point de vue de votre code vous ne seriez pas du tout averti.
public void bar() { try { //code here } catch (Exception e){} }
Solution
Il impératif de ne catcher que l’exception ou les exceptions spécifique(s) jetée(s) par la méthode sous peine de tomber dans les problèmes évoqués ci dessus.
Webmentions
[…] walgreen cialis price […]
[…] buy viagra 100 mg online […]
[…] viagra sildenafil 50mg tablets […]
[…] canada pharmacy cialis […]
[…] cialis generic […]
[…] generic cialis for sale […]
[…] sildenafil 50mg […]
[…] printable cialis coupon […]
obecná expresní doprava kamagra
kamagra bez lékařského předpisu a doručeno přes noc
purchase rifaximin generic efficacy
how to order rifaximin price discount
online order xifaxan uk online
order xifaxan generic xifaxan
cheap avodart buy sydney
online order avodart cheap fast shipping
ordering staxyn cost insurance
purchase staxyn generic south africa
cheap itraconazole uk cheap purchase buy
buy itraconazole online new zealand
buy canadian gabapentin online
buy cheap gabapentin generic efficacy
buy cheap fildena buy online canada
buy fildena cheap uk
get flexeril cyclobenzaprine generic switzerland
cheap flexeril cyclobenzaprine online mastercard accepted
cheapest buy dutasteride cost new zealand
discount dutasteride cheap with fast shipping
ordering androxal no rx needed
buy androxal with no prescription
enclomiphene cod saturday delivery
how to order enclomiphene canadian pharmacy no prescription
y a-t-il quelque chose en vente libre comme kamagra
medicament kamagra pharmacie nist prescrire
[…] best ginseng supplements for men […]
[…] 50 mg viagra cost […]
[…] sildenafil 50 mg for sale […]
[…] cialis cost […]
[…] buy clomid online […]
[…] buy rybelsus with prescription […]