
Sur les systèmes de production qu’elle gère, la société Takipi a analysé 1 milliard d’erreurs Java soit 2,7 To de fichiers logs. Il en ressort que 10 types d’erreurs Java représentent 97% des logs d’erreurs !
Les 10 types d’erreurs sont
- NullPointerException
- NumberFormatException
- IllegalArgumentException
- RuntimeException
- IllegalStateException
- NoSuchMethodException
- ClassCastException
- Exception
- ParseException
- InvocationTargetException
Ce qui m’amène à penser :
- Ce n’est pas une nouveauté que l’erreur « pointeur nul » (« NullPointException ») ai la première place.
Mais si les mêmes programmes étaient écrits en C alors ils planteraient tous !
Heureusement en Java, le mécanisme de récupérations des erreurs (try…catch) le rend robuste 😉 - Il n’est pas normal que 10 erreurs représentent 97% des erreurs :
- soit elles sont trop génériques pour englober la plupart des erreurs 😉
- soit elles sont mal gérées :
– des bogues : à réparer d’urgence !
– des interfaces utilisateurs trop permissives alors qu’elle devrait aider et valider les données saisies (cas du NumberFormatException habituellement) par ces derniers.
– des pertes de connexion réseau. Mais dans ce dernier cas, on devrait voir des « IOException », sauf si l’erreur « ExceptionNull » l’englobe . Si c’est le cas alors ces erreurs sont trop génériques (voir 1er point).
- Imaginer si le développeur pouvait supprimer ses 10 erreurs : l’analyse des log serait plus facile, nous y gagnerions aussi du temps, et nous serions plus zen 😉
- En supprimant ces 97% d’erreurs vous gagneriez aussi, leurs espaces disque, votre système de sauvegarde serait plus rapide et la sauvegarde couterais moins cher (car moins d’espace à sauvegarder)
Si vous avez des commentaires, n’hésitez pas a m’en faire part
Sources 10 erreurs représentent 97% des erreurs (Anglais) :