Code & coffee sur les exceptions (sujet choisi par le chat)
-**Auteurs** : Anthony REY et Colin DAMON
-**Date** : 16/12/2020
-**Langage** : Java
-**Niveau** : Débutant
-**Replay** : TODO
La prise en compte d'une exception doit être fait au plus proche de sa création. Il faut cependant être dans une couche permettant ce traitement : une exception peut donc traverser plusieurs "layers".
Les checked exceptions doivent être explicitement `throw` ou `catch` ce qui a tendance à "bloquer" les mises à jour d'API. Si cela semblait être une bonne idée pour obliger le traitement des erreurs, dans les faits elles ne sont pas mieux traitées.
Les checked exceptions sont les héritières directes de :
- Throwable
- Exception
- IOException
## Unchecked Exceptions
Les unchecked exceptions n'ont pas besoin d'être explicitement `throw` ou `catch`. Elles remontent directement jusqu'à l'endroit où elles sont prises en compte. En dernier recours elles sont traitées par la JVM qui va simplement les tracer. Cependant, beaucoup de FrameWorks (dont Spring) viennent avec un outillage facilitant le traitement de ces fin exceptionnelles.
Les unchecked exceptions sont les héritières directes de :
- Error
- RuntimeException
- IllegalArgumentException
## Créer votre stack d'exceptions
- Prendre le temp d'outiller les exceptions : cela en vaut la peine ;
- Faire des exceptions spécifiques aux erreurs ;
- Ajouter une information pour connaître le type d'erreur a remonter aux utilisateurs ;
- Wrapper les exceptions "exotiques" dans des exceptions custom.